> WinForms (and generally VS.net) was always slow in comparison
It was slower at first, sure. Performance was a huge project over multiple years for Visual Studio and the WinForms designer hasn't been considered "slow" in years.
> and WPF, same as WCF, is just an abstraction nightmare (and even slower compared to WinForms)
Not really? XAML itself is a pretty direct representation of an object graph. More so than the hideously long Attribute blocks at the top of VB1-6 FRM files and the giant blobs of binary nonsense in FRX files.
WPF Binding can be confusing, because like Vue or half the other web frameworks, two-way data binding is hard. But WPF has always supported classic double-click to code behind and set properties directly on window controls models of UI code writing, just like WinForms and VB1-6. Just about no one recommends it, for the same reason people recommend two-way binding systems like Vue because it can simplify other parts of your application and can be hugely beneficial on the other side of the learning curve.
Mileage varies on the speed of the WPF designer. Again, performance is something that greatly improved over time. Most of my worst WPF performance problems, when I was using it regularly, were with third party controls I had no control over, and tried to get rid of.
Personally, I'd greatly prefer to write XAML by hand in notepad than design in a UI in VB6 ever again. I'd complain a lot without tools to help me fix basic IntelliSense mistakes in my XAML, but I'd do it. Obviously, everyone's opinion will vary.
> The fact that VB6 and IDE still works
I cannot stress enough: it doesn't. The work I have to do in VB6 is pulling teeth. I have to do it in a VM that for reasons of security now has to be entirely isolated from network access. Even just scrolling code in that VM now takes what feels like subjective minutes to scroll just a few lines at a time. I'm constantly trying to use VS Code to comb through the codebase and prepare my plan of attack before ever opening the VM and it's like preparing punch cards for a Mainframe because I want to make sure I've prepared enough I spend as minimal time in that VM as possible. Navigating the VB6 in VS Code is horrible due to the aforementioned Attribute block garbage and absolutely no sense of navigation because all of the event handlers are wired in the FRX opaque whatsit from what I can tell and you can only assume that functions still do what they were named to do and that a `Form32_Load` wasn't actually repurposed to be `Button98_Click`. For the most part I'm thankful the codebase I'm working on isn't that evil, though I'm incredibly sick of VB6-era Hungarian notation at this point.