It's probably not an engineering failure given current-day knowledge, because (as far as I know) nobody knows how to engineer a network that scales arbitrarily to any number of nodes while achieving total consensus (agreement) on all state every few seconds in a fair-decentralised and consistent manner.
The Ethereum blockchain does scale to more nodes and use scalable P2P networking algorithms. It is only the active beacon chain nodes which are constrained. Just as many users with "full nodes" in the current PoW network do not run a mining operation, not everyone needs to run a beacon chain validator to participate in a decentralised way in the PoS network.
You may think it sounds easy or natural to scale, but actually there are some difficult trade-offs when coordinating global consensus over all state at once. Because communication grows faster than O(n) for n nodes in a flat structure, one of the solutions to that is an uneven power-law network (like a hierarchy), or communication latency rising (along with costs), but both of those are undesirable factors when optimising for fair decentralisation with reasonable latency and costs.
These issues don't arise on other P2P applications such as file sharing and VPN onion routing. That's because they don't need to provide a real-time global consensus of all state on a fixed time scale.
Some blockchains offer low latency local-only consensus, or optimistic consensus which might be rolled back, but those are also a negative for some purposes.
There are some techniques for arbitrary scaling while keeping all the other desirable properties, but they are still open research problems. Some of the most promising techniques use zero-knowledge proofs, but those are mathematically very compute intensive and the current techniques can't run something as complex as Ethereum in real-time yet on an ordinary high-end PC.
Even the PoS beacon chain being readied for the Ethereum merge depends on fairly advanced mathematical cryptography to work.
The fact that a decentralized P2P blockchain can have "too many nodes" is such a massive failure of engineering. It's honestly mind-blowing.