I'm not sure if you can really call it a "hard" fork. Some people could change the limit today without really effecting the network since we aren't really hitting the limit yet. And it would make the most sense for us to change it now so by the time people start hitting the 1MB limit, it won't be an issue.
Regardless, it isn't really up to the core developers anymore. The developers at slush or deepbit could change the limit today. It'd be risky to try to propagate a block today over the limit, but if the larger miners got together and decided on a date to collectively change the limit, there'd be a higher success rate.
Wrong.
All bitcoin clients will reject a block above 1MB, regardless of what any miner produces.
Thus, it would take a hard fork to change the maximum block size.
This makes very little sense. Why not code the limit into miners only, and have the client simply prefer to relay smaller blocks over larger ones?