Is there a technical limit beyond this artificial one? Would it just be the bandwidth available to the weakest (in terms of bandwidth) nodes, or are there any inherent limitations of the p2p network itself?
If there are any technical limits (from data types or whatever), they can be eliminated in the same way that MAX_BLOCK_SIZE can be increased.
Storage is the main issue, I think: an attacker could create huge blocks that
every full network node has to store forever. With just 1 BTC you can create a block of 15+ GB by splitting it into 100,000,000 "nanocoins".
In the future most people will run Bitcoin in a "simple" mode that doesn't require downloading full blocks or transactions. At that point MAX_BLOCK_SIZE can be increased a lot.