If you do use C++/MFC programming for basic applications and are looking only for enhanced productivity, then you should start by splitting the GUI from the functional part of your programs, then you are free to use C++/CLI (.NET) for the pretty shining things.
I personally hate .net (and tolerate Java) for everyday desktop applications, will not touch it beyond using it as a RAD tool (as a new VB, better yet since you can use IronPython :) ), in any case you should get a pretty much complete toolbox with less strings attached and a better API and learning curve (to MFC and wxWidget) if you use the new LGPL Qt library.
As for the last two questions the answer is no, not really.
wxWidgets is, simply putting it, a portable MFC (the API and class structure is closely related, but saner) but it lacks many of the new cool features of MFC (VS2008+) and doesn't integrate as easily as Qt with the VC++ IDE.
MFC sux (very outdated) but if you aren't worried about portability and want only a pretty Windows GUIs (with no other consideration) you should stick to it (or doing the GUIs in .net), you will have stable library and with easy to find information on the WEB, see codeproject site if you have any questions and if do have the time then explore Qt, it integrates well with VC++ and has a GUI creator, it is also very complete and professional.
PS: I'm also working with MFC and I'm a little more concerned with portability and the footprint of the application, Qt is a hog on memory, I've also found FLTK2 and have liked it very much but it is still too impractical for complex GUIs.