I don't think any of those models would work in the small business sector that I provide niche software for. The big open source projects supported by the likes of Facebook etc work because writing software is something Facebook do as an aid to their business rather than it being their business per se. So contributing to open source software is purely a way of reducing their own costs and maybe getting some kudos. If your fundamental business is writing software that you need to sell to people then making it open source makes as much sense as a corner shop operating on an honour system.