Oh boo hoo they enumerated an enormous number of corner cases, handled backwards compatibility, crappy cables, all sorts of things. It also reflects decades of back compatibility and painfully learned mistakes (consider mini-A) not to mention some weird pathologies (weird naming like hi-speed/ full-speed/ super-speed).
It sucks that the standard is so complex that a small number of design houses and consulting shops will end up with a de facto cartel of understanding the Sacred Knowledge, but nobody's stopping you coming up to speed by reading the whole spec and doing a lot of implementing. But it's not like you can build a solid TCP stack these days either simply by reading the original late 70s RFCs.
And you don't have to use this spec -- you can still use RS-449 if you think the USB spec has become overly complex. In fact I used that in a design only a few years ago!
Does it work reliably on the open internet? AIUI, it's interoperability with all the edge cases of badly implemented protocols that leads to statements like GPs.
The "smol" in "smoltcp" is mostly talking about the internal architecture and exposed API. For example, it will never support true zero-copy sockets, because the API burden due to restricting itself to safe Rust is too high.
I don't think any TCP/IP implementation is going to be "haiku-like", the protocol stack is way too messy.
Yeah, good luck with 5A on such small pins an pcb tracks, after prolonged usage. I see many problems with existing 500mA delivery, increased contact resistance, cold solder joints, and so on. Insurance is a must have.
It's scary to consider that whoever added that "feature" was probably thinking of region-locking...
Before, I used to think that hardware specifications and protocols would be simpler purely because hardware people don't really like complexity and it would make implementation harder, and that was usually the case. Now it seems like elements of Enterprise Java have slowly creeped in...
The fact that the adapter has far more nonvolatile memory than it needs is somewhat unsettling, not just in the wasteful sense but also in the "hidden surveillance device" sense.
And companies have in fact used this to make their devices only work with their own brand of chargers. I know HP has at least, because I have one. Does a pretty great job of defeating the "universal" aspect of the Universal Serial Bus.
In addition to preventing the use of third party power bricks, it also makes all of those USB-C docks with power passthrough useless.
And meanwhile Enterprise Java has become lightweight and simple (to use at least, - and the fact that TomEE exists implies that it possible to implement and support a compatible server even for a small company/team, as long as they know what they're doing.)
[1] https://twitter.com/whitequark/status/1035729916149604353