Correction: a block can currently contain 1MB of data. Originally, there was no limit, but at some point the 1MB limit was added to prevent DOS attacks. It was never intended to be permanent and can be increased or removed entirely if necessary (I think Gavin said the limit would be raised once pruning is implemented).
Shouldn't the tx fee prevent DDOS attacks of this type?