I don't believe that shutting down Steemit Inc.'s public nodes without a free replacement would be a good solution.
Then I suggest you volunteer to pay the $2 million/year. Perhaps that cost can be reduced, in fact I'm sure it can. But it could also increase if demand grows. Personally I'd much rather have Steemit spend that money on blockchain development (not to mention staying in business/survival), which they are at this point uniquely qualified to do. With sufficient funding (not a Steemit Inc strong suit at the moment), anyone (or at least many people with the right experience) can run nodes.
BTW, witness rewards are a tiny fraction of the rewards paid out by Steem (10% of total inflation vs. 75% for post rewards). If you think free nodes are a good use of reward funds, then I suggest making one or more daily/weekly/whatever posts requesting support for free public node service and if people agree with your philosophy they can vote for it. I don't rule out that this could be a good idea. But for something to replace Steemit nodes will still be very expensive (consume a significant portion of the reward pool), and the cost can easily grow with increased usage.
Again, I don't know what EOS does (simply not familiar with it) but neither Ethereum miners nor the Ethereum Foundation provide free nodes. People who need nodes run their own or pay for a service.
even right now the public nodes available are barely enough to keep up with the demand
Exactly (so whatever plans you have along the lines discussed above, you better plan to not only replace the Steemit nodes but actually scale UP). That's because this model is unsustainable. Nobody even knows what those public nodes are being used for. It could be hugely wasteful/inefficient usage or they could even be deliberately overworked by competitors. The model is not viable.
decentralised Blockchain should not be controlled by one entity such as Steemit Inc
A decentralized blockchain is strengthened by people running their own nodes. There will inevitably be nodes as a service, which hurts decentralization, but trying to fund and operate a free service that encourages (nearly) everyone to use them is actually sabotaging (by centralizing) the network. It is quite terrible that when Steemit's nodes go down, as they have on occasion, nearly the entire ecosystem crashes. This undermines not only the operation of the network at that time, but its ongoing reputation because it is clear that everything is centralized and its "'decentralized' apps" are a sham. Even before financial problems forced the question, I was against Steemit's free node service. People should run their own, and in practice, most won't if there is a free option.
For very low usage (people just wanting to use a wallet to access their funds, experiments by devs working on a new project, etc.) there can be low-capacity free nodes offered by the volunteers in the community. But there is simply no reason for a deployed and scaled-up application to expect to rely on a free service. Life would be wonderful if all sorts of nice things were free, but they mostly are not.
I don't want Steemit Inc to spend money on running public nodes either - but we still need them.
These $2 Million currently come from Steemit Inc.'s Steem stake being sold and as a result pushing down the price of Steem decreasing the rewards pool for everyone. What if we raised the witness rewards dynamically to over 10% while the price is low and decrease them when the price is high as suggested in my previous comment?
And still they have much more more developers creating exciting dApps than Steem does - that's why their market cap is much higher. Take the free nodes away from Steem and people like me (developer on a student budget) will start looking into alternatives.
What if we introduced a new model: Nodes are freemium and accessed with API keys. Each developer who wants to access the public nodes can apply for an api key (or something similar tied to account keys), usage is tracked and if it exceeds certain limits the developer can choose to pay for higher limits or run their own private node?
Then witnesses will be selling stake instead, pushing the price down.
Now you are talking. I suggested elsewhere the possibility of a free tier with low limits (like AWS has) and the owner of buildteam, which is one of the companies potentially interested in providing node service as a business (if Steemit stops undercutting them with unlimited service at the unsustainable price of zero), responded favorably. I'm pretty sure that we can come up with a solution (maybe 'free tier' maybe something else) for students and independent devs who want to experiment without needing to pay a lot for 'commercial grade' service. Nobody is against that.