We really need a modernized version of WvDial for wifi on Linux. The whole setup process is still so clunky. It seems to just randomly detect the wrong encryption scheme so shockingly enough my WPA key doesn't work as a WEP key, it can't figure out that if I have 5 open networks it should use the strongest signal automatically, if one of those 5 networks keeps dropping it won't pick one of the others or if DHCP fails it will just sit there doing nothing instead of trying another one of the networks. If someone could analyze how people actually use wifi and solve 90% of the most common setup problems it would be a huge boost for Linux usability.
Wicd seems to solve all of the problems you listed here. Unfortunately distros seem to push their own broken or feature-lacking interfaces instead of adopting and extending this one (ubuntu, looking at you). It will not reconnect you to a network with a stronger signal automatically unless you lose the connection though - which I think is a good solution, because you don't want to be disconnected at 99% of some big download, just because the signal level changed (without actually disconnecting you).
But I agree... the state of distro-default applications for both ppp-based 3G and serious wifi is disappointing. I needed wvdial to connect to O2-uk. Not because it was impossible with gnome-ppp, but because only wvdial gave me enough debug information to figure out why I couldn't connect the first time.
Yes, wicd is great and continues to get better. After having no automated wireless support for so long, it's easier to manage wireless connections on my laptop with linux (Slackware, no less!) than it is with Windows (XP), and almost as painless as OS X on my Macbook. I'm sure my opinion is subjective, but it's worth applauding the contribution made by this excellent project.