Where does the 1Mb limit come from? Is it a technical limit, or simply hardcoded to save bandwidth?
It's just an arbitrary limit, probably to limit the effects of DoS attacks. You won't accept blocks over 1 decimal megabyte.
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?