It must be more than "engineers can't read a spec" because decices using previous versions of USB tend to be fine. So why can engineers read those specs? (Why didn't they "choose an incorrect resistor value" for previous generations of USB, then?)
This spec by contrast must be far more complicated[1]; also since it is so much faster, can't quality components supporting it all be more expensive - leading to cutting corners as a cost cutting feature?
Also if as a consumer you can't predict what "should" be about to happen (which way power will flow, what will be host) that is down to a bad spec re connector types. For example couldn't a universal visual indicator on a port (including the bottom of a phone) indicate its capabilities and what will happen very clearly? (Through symbols.) They do not. Couldn't a software popup make you choose? They do not.
Not to mention that it is not clear what should happen. If a phone can power a USB peripheral (like usb on the go) that means it could charge a second phone.
So if you connect two phones which one should charge the other? With old versions of USB phones the answer is simple: whichever one you put an on the go converter into, making it a master instead of a phone's usual role as a slave.
The fact that the spec does not make these as clear for USB C is down to the spec and design.
Can't USV C simply be badly designed? (overdesigned, underdesigned, badly designed.)
[1] Consider that a 1-page spec that can be read and implemented quickly in 15 minutes, can be implemented by anyone. A five-thousand page spec that takes 1,000 hours to read and understand can be implemented by no one (only teams). In between we have both previous versions of USB and USB C - but is it possible that USB C is too far in the latter direction?