Basically, to make witnesses viable we would need gas cost changes the look something like the following:
- SLOAD goes up to 1000-2000
- Any opcodes that access other contracts go up to 1000-3000
- Calling a contract (and hence running its code) further costs an additional 1-2 gas per byte of code
This would actually be not that punitive to average applications, though many apps would need to rearchitect themselves to use fewer full-sized contracts. There would be some exceptional applications that become considerably less viable. A simple ERC20 transaction (including DAI) would maybe become at most ~5-10% more expensive.