"a = cast(-1.5,'unit32') % a = 0"
So is unit32 a new data type? Maybe a 32 bit scalar, that always takes on the value 1?
I'll assume you simply cannot type, and really meant uint32. Of course, then you did not actually bother to test the code you posted, a no-no.
Are you seriously surprised that when you cast a negative number to a non-negative integer class, that you got zero??????? You think this is a bad thing? What did you expect to get out here? pi?
As far as "improving" functionality, there is no claim to an improvement, merely a behavior that is its own. You learn how a language works. Every language will generally be subtly different, with its own characteristic behavior based on decisions made by those who designed the language. Clearly you disagree with those decisions, while I don't care, as I am not closely wedded to some other language. As far as I can see, once you fully learn to use a tool, you learn its characteristic behavior, and there are no problems. One can always get the answer needed, as long as one knows what to expect.
Sorry for a response that may appear a bit sarcastic, but your question is really more of a rant than a question. When you make claims that MATLAB ALWAYS does something, you are making broad assertions that will not be accurate for any tool as large as MATLAB, and are clearly intended as flame bait. Likewise, you ask for the general opinion of people, when you have made your opinion very clear on the matter.