The main issue I ran into with the NWS API was a lack of stable conditions codes/icons (something like WMO codes that could be easily mapped). They encode some weird dynamic image URL that renders a summary of the weather, but isn't machine readable. I think they're deprecating it anyway. Otherwise, it had pretty much everything through one endpoint or another.
For the others, I tried to document the main limitations here: https://github.com/vsergeev/briefsky#unsupported-providers