I largely agree with your points, it's difficult to build truly decentralized apps, since most people don't run a local node. But at least you could build an interface that falls back on the different possible providers, including a local node if it is there. So if someone really wanted to access the Blockchain, they could - regardless of centralized web3 providers.
Also, I think OpenSea does post all orders public: https://etherscan.io/address/0x7be8076f4ea4a4ad08075c2508e48...