BLISS did this too, and the experience with that highlights one of the problems in the idea: that is makes it far less portable. DEC had several completely different languages, all called 'BLISS', in part because having the sole data type be the system word caused problems when going from 8-bit, 12-bit, 16-bit, 18-bit, 32-bit, and 36-bit systems (eventually they standardized on 8/16/32-bit, just as IBM had earlier, but that meant a lot of their older product lines got abandoned). The languages were not consistent in other ways, but that was the biggest drawback.
More to the point, if you have only one data type, you lose a lot of the error checking and debugging information that typing provides. Typing doesn't need to be explicit to be strong (though most strongly typed languages are explicitly typed), and explicit typing certainly doesn't imply strength, nor is strong typing necessarily desirable for system programming; still, having
some kind of typing information is far too valuable to avoid.
That having been said, if you design a solid set of type definition constructs, and either avoid infix operators (as in Forth and the various Lisps), or allow operators to be overloaded (as in C++ or Python),
and have a convenient means of mixing HLL code with assembly code, you can in theory use a raw data type as the base of all the others, and define the types you need explicitly. This is (in principle at least) how Ada works, and is how I intend to write Thelema (though in that case I am also allowing extensions to the compiler itself, as well as lexical macros or the kinds typical of other Lisps). You still need to be careful about word size issues for portability, but it becomes a library implementation issue rather than a showstopper.