It's still never going to fire more than every `update_freq` ms though, and as you say, if you type fast, you don't get any highlighting updates. Also it feels like `g_source_remove` would do quite a bit of work (list patching, dynamic re-allocation, etc), more than is necessary.
FWIW, I only asked about this since I was doing something similar in a plugin and it had me wondering about it again.