If I'm the guy producing a spec, my goal is to produce a spec that is clear
as possible, and only leave open those bits that are necessary to leave open.
Well, that might work for internal specs when you are managing a project, but
that's probably not the right way to approach standards. A standard, being the
rules of the network, shall only constrain what must be constrained for
interoperability.
All implementations are tradeoffs. Developers will necessarily make them, based
on the different resource, priorities, usage scenarios. It is much better to
explain to give clear guidelines than to merely mandate an implementation.
-- Christian Huitema