Would it be possible to make a snapshot of blockchain in a form of a table which would contain ONLY two fields : all the addresses ever holding non-zero amount and actual amount kept on those adresses at a certain agreed block. That table could be verifieded by all nodes and signed and it will itself become a record frozen in time just like the blockchain itself - it would be just a subset of data held in blockchain.
Other nodes (which store whole blockchain) could verify the trimmed/stripped table, but you still need to trust them not to sign malicious table (which costs almost nothing).
New blockchain would start from the agreed block and would continue as usuall from that point.
Then users happy with this solution could keep this new table and much smaller "new" blockchain on their devices.
The users already happy with invention of light/SPV wallet.
As you say : If only a few nodes can afford to have the whole blockchain and only a few nodes can afford to download it, it's no longer a peer to peer network. I am afraid that sooner or later this happens due to impractical size of local blockchain copy.
It already happened to me - I had two HDD failures already and I can tell you that bringing back the node in operation is not fun.
True, but Satoshi already foresee this would happen and there's no effective way without big trade-off.
For example, ETH block size now is almost 3TB and you can't use HDD to store it due to high I/O activity.