RE: Could multisig accounts controlled by witnesses be used for new chain features?
Your idea is clever in theory... but only in theory. So from now I'll presume that you are simply interested in tech and you are not a developer yourself.
First when you say "Then, in the witness software, after it does the normal work of processing a block, it also does whatever new functionality supports the new feature" you have to know that the witness software 'steemd' is the Steem blockchain itself. (Even if some nodes are not signing block and some other services are running around)
Then you are missing a fundamental of Steem, it has many good features but it's not meant to do heavy computation (like ethereum) and has no native support for other chains (like thorchain). so when you say "it also does whatever new functionality" Steem would need to execute arbitrary logic based on new arbitrary function/feature (called smart contract on other chains) stored on chain and using the Steem consensus. Remember the Steem blockchain only validate and process predefined operations (comment,vote,etc...) and Steem is using custom_json operation to compensate the lack of smart contract but for that it requires a sidechain. But ok let say we have smart contracts on chain (this would be a big challenge even for Dan Larimer), the following assumption is still wrong And because this functionality would be implemented "between" normal block-processing it wouldn't have the constraint of needing to be finished in 3-second cycle You probably think that witnesses have extra time between blocks but no, they don't have it, all nodes operates in a schedule, if you add any heavy computation to a node you will end up with congestion or worse multiple forks. Heavy computation would probably also mean that Steem would become a chain where you pay fees for each transaction rather than using RC.
I can continue like this and point out more misunderstanding but I guess you understand what I mean, Steem has not been designed in this way. A big change like this on the mainnet is clearly not easy as you think and would require years of work and test from an experienced team in C++ to be done. Again I'm not saying it's impossible but do you imagine anyone willing to take the risk to make a change like this on a working mainnet? Or pay a team of few devs for 3-4-5 years and up to millions to simply reproduce what some others are doing better? (since they are designed for it). It would be much easier to make a new chain in that case and implement the social features on it.
In opposite a sidechain like in the proposal avoids these issues by running an independent consensus mechanism designed for custom logic (like an EVM). Let the consensus of Steem witnesses focused on block production, without forcing them to run extra logic, all while providing a bridge where transactions are cryptographically validated rather than relying on off-chain agreements.
No, it would need to implement whatever function/feature was being added, not necessarily smart contracts.
Can you expand on what you mean by that? Perhaps walk through a hypothetical example of what happens when a witness node is overloaded.
Can you?