I think op goes too far by including trailing slashes, but being liberal in what you accept (Postel's law) is a bad idea as the last few decades of the web have shown. Once you accept things, you are locked into supporting them forever lest you break compatibility. When there are multiple different implementations of a standard, they grow incompatible over time.
Well, the web has been very successful in the last few decades. Arguably at least part of this success has been due to Postel's law since, for example, browsers interpreting HTML on a best effort basis has allowed for both diversity and innovation. Comparing the rapid adoption of the web to the failures of numerous closed and strongly specified protocols provides some empirical basis for this.
In retrospect I think we'd have been better off without that principle.
Too often what happens is that the receiver is liberal, which results in senders not having to bother to fix violations of whatever spec the parties purport to be following.
As the sending code continues to be developed occasionally new deviations from the actual spec and from whatever it is that current liberal receivers accept creep in, and the receivers get even more liberal to deal with them.
A few years of this and writing a receiver for what should have been a fairly simple and easy to implement format requires huge parsers that handle a bazillion weird cases.
Perhaps your hindsight is selective. After HTTP/HTML and related technologies such as JavaScript have become hugely successful following this principle, it's easy to look back and say "the technology stack which beat all others and became ubiquitous is now hard to develop against because it's too permissive".
That's not a principle. That's just a random thing that people thought back in the 80s and 90s because of some clever little comment in a spec, that sounded correct at the time but proved absolutely ruinous in the decades since.
Systems that are liberal in what they accept are paradoxically harder to develop against, undermine standards and encourage incorrect, fragile implementations. Query parameters are a classic. In practice, unrecognized query parameters almost always represent a bug in the client. Better to find out immediately with a 400.