Common classes of contracts and how they would handle contract state-root-plus-witness architecture

Yes it would. However, if you want to build an application that is not vulnerable to soft forks, then this approach would leave open a way to do that: build your application in such a way that every item of storage is a contract (ie. the same approach as suggested in the other thread about rent), and take advantage of the 32 witness-free storage keys I propose.