Why won't my iPhone switch to 3G when I'm out of WiFi range?
The expected behavior is probably for the phone to stay on WiFi as long as it can connect, and then switch to 3G; as of iOS 5, I don't think the capability is there to automatically notice a dead WiFi connection and switch to 3G.  So what you're seeing is perhaps a lack of functionality, but it's not strictly speaking a bug.

I can't really see Apple making that the default functionality, though.  They'd get a lot of flak for making the iPhone too smart; nerds would complain that they don't have control.  If it was done, it would probably be an option.

It also would be very difficult to do well automatically.  How does iOS know a connection is bad?  What exactly does "when WiFi stops working" mean?


Lack of public internet access?  Windows 7 (and maybe Vista) does this by requesting a text file from Microsoft's website with predetermined content; that's how it knows if your connection has internet access or not.  But what if you're on a network at work that only offers access to intranet sites, and not the public internet?
Lack of data transfer despite network requests going out?  What if you're repeatedly trying a site that's experiencing a lot of traffic?  How many repeated failed requests mean a bad connection?
Long response times for outgoing requests? How long is too long? It could be averaged over time, but where's the threshold?


It could probably be done, but it would be difficult to do well, and the gain in widespread user satisfaction probably isn't that huge in comparison to other things.