Re: TCP is wrong for most network transactions
Not really. The original point of the OSI stack was to be descriptive. Actual implementations were a secondary concern.
But in any case the claim you quoted is wrong, for the obvious reason that a great many programmers will use existing implementations of higher-level protocols which provide framing and messaging. Most programmers working on distributed systems are writing web applications – most commonly in Javascript – which use existing HTTP implementations. Someone writing XHR requests for an RIA / SPA (or, more likely, writing to a Javascript framework which hides XHR under more layers of abstraction) is most certainly not worrying about framing and messaging of those requests and their responses.
So "invariably" is a load of rubbish.
There are those of us who do work with protocols at a lower level and have to worry about implementing things like message reassembly, but that's relatively rare, and should be rarer. I'd say 90% of the questions I see about sockets and other lower-level communications APIs online should be answered with "you're doing it wrong – use a higher level".