It would help if MySQL changed their policy from "it must be small and fast" to "it must work properly and reliably"
Tinyint has it's uses if you are really storing 0-255, like in IP octets, or people's ages. But it's near-useless for everything else, which unfortunately is 99% of all database apps.
/me adds tinyint to the list of evil things.