There are a whole lot of applications out there in widespread use that depend on UDP at the very least, eg. most multiplayer network games, just to use the simplest and most common example I can think of. Not everything can (or should) be stuffed into a HTTP transaction.
Game developers don't really have a problem with using UDP/TCP on random ports.
I want as much as possible to break for people who block those ports, and engage in other user-hostile actions.
Or I can create my own protocol which has none of those benefits besides possibly quick development.
Yeah, using TCP directly is great, isn't it?
The only times I know that non-HTTP works is video games and that is sorta hit-or-miss on one ISP I frequent, they block protocols they don't know for "security".
Making it HTTPS is an easy way to get around any potential firewall problems and have it work easily in corporate settings.