Every single piece of MFC code I've had to maintain, both at my previous job and now during my occasional consulting work, has suffered from this problem really really badly. There is no excuse to mix presentation with logic. As far as I can tell, MVC is one of those extremely rare design patterns that isn't some overhyped OO klutz, and really is worth it.
But sometimes the GUI implements part (or just possible all) of the functionality. A clever GUI design can simplify a complex user operation to the point where the "back end" is left to just read and write data.
It's not all about writing API's although (to be fair) this post makes some valid points.