It could be as simple as a 4-point "charter"
Very elegantly written article: "Sharepoint has never been an answer to any question ever asked by a business person" :-)
The choice is too often reduced to a bipolar distinction between smooth commercial COTS and in-house development that is never documented, and has one socially dysfunctional developer as the only source of knowledge. It isn't that single-dimensional.
It seems reasonable that ALL commercial software vendors should: (1) provide source code available licenses to their customers; (2) use applicable open source software that clearly out-performs where development resources and adoption are concerned; (3) always choose an open standard over proprietary alternatives; and (4) create an API that expects the customer to add functionality (and makes it clear such derivative works belong to the customer).
Software vendors will find themselves at different levels of maturity when measured against these criteria, but that's fine.
Until IT buyers start asking for this from their suppliers, lock-in and frustration will be the norm.