When there is no type hierarchy you don't have to manage the type hierarchy.
Such is modern computing: everything simple is made too complicated because it's easy to fiddle with; everything complicated stays complicated because it's hard to fix.
Sockets are the X windows of IO interfaces.
Caches aren't architecture, they're just optimization.
There's no such thing as a simple cache bug.
Languages that try to disallow idiocy become themselves idiotic.