So, uh, why not just code in those languages eh?
Because many people use different languages for different purposes. The trick is to find the language that has most pros and fewest cons with regards to the requirements of a given project, and then use that. Sometimes it will be nessecary to use more than one language, and bind them together with XML, JNI or something similar. If variable sizes changed depending on the platform you'd get odd stuff anyway, since you wouldn't really be able to know how big your variables were.
In C it's for 2 reasons. One being speed, the other being legacy reasons. Most often you don't really need to know the maximum number your variable can hold, and if you did, you could always stick to using the names that didn't vary depeding on target CPU architecture.