Hugo watch mode (both server and build) does not produce accurate sites on change and is really meant for development. I find after a developing for a while, I have to kill the process and restart it and then things are “fresh”
From reading the documentation, I strongly have the impression that hugo focuses on being fast on re-render and that the idea is to build and deploy to public site each time there is a change. The big difference is probably whether to render locally and push the generated content, or to push the source markdown and render remotely (which I chose).
Did you look at Pelican? I share the frustration with much of Hugo’s infrastructure: the template language is buggy and inscrutable, and the plugin architecture wanting.
I ended up with Hugo, but I considered Pelican. It uses standard Jinja templates, which I find much more rational (but it might just be me) and I recall there were plugins for a lot of things, including different source formats. The code is written in Python, so that even if there isn’t a plugin for a format you need, there probably is a Python library for it and it should be relatively easy to make it a plugin.
Crap, now I want to switch to Pelican…