I worked at Swype and then Nuance after the acquisition.
My experience with Google keyboard has been very good. The main difference I've noticed over the years is that phones got bigger. Swype was magical on a 3 inch screen but not nearly as good on a 5 inch. If I remember right the core would take the exact touch points less seriously on a small screen but on a big screen usage might go back and forth between very accurate and sloppy.
If I had to speculate somewhat, it's possible that newer keyboards take a very principled approach to the code for input recognition. I didn't work on the input matching part at Swype but it was often discussed with great fear, because it was a couple giant functions with tons of conditionals. It had been built up over I think a few years early on but without much documentation.
The other thing is that there was a race to the bottom on price, which later led to much smaller teams working on keyboards. There just isn't enough financial incentive to put many resources towards it, compared to something like speech recognition.