Hi Paul!
I've always disliked MFC. I still do a lot of C & C++ programming but I use my own libraries. The reasons I dislike MFC are the hugh bloated programs that result, and the architecture (document view) that is imposes on one. If you don't care about the size of the resulting programs, can live with wizard generated code, and like the MFC Document/View architecture, I'd say use it. Here just recently my organization received a large MFC program that was recently released, so I know folks are still using MFC.
In terms of 'ends and means', I guess I'd say the 'means' are as important or even more important to me than the 'ends'. If I had to choose between producing a simpler application of which I could say I fully understood every line of code, and a more complex one containing auto-generated code some of which might even be over my head, I'd usually choose the simpler one, and hope that while producing it I'd learn something new. To me the primary beauty of C++ is that it allows you to use some truely interesting features to build up larger code 'objects'. So I guess I like to keep re-inventing the wheel. As I said...a matter of ends vs means.
I guess in my formative years as a coder there was no internet where one could go for help. I always worked alone and never had access to anyone to whom I could go for help. I developed a mentality where I had to figure out everything for myself. Therefore, I tended to stick with more basic and fundamental coding styles that were not several abstraction layers above the 'base', as it were. That is probably part of the appeal of sdk api style coding. Once you understand the fundamentals, its really pretty simple. That's about the best I can do for an answer!
Fred