There is an underlying quite tough technical challenge here - mapping what are basically pulses into steady, continuous ticks for audio plugins to use.
Typically on audio plugins the transport is given as either BBT (bar-beat-ticks) or pulses per quarter (notes), with extra information like BPM and time signature.
The issue is that there is simply no easy way to convert from simple pulses into a steady rolling timeline like what DAWs use.
The MIDI Clock provides pulses, as indicator for “tick next step”, which would be 1/4 of a beat on a 4/4 time signature.
Finding BPM of a signal of pulses is possible by measuring the distance between them, with some filtering for jitter in the signal.
Most plugins rely on more precise information than just this though, specially in regards to stable continuous timings (for example, readjusting delay lines when BPM changes).
The 2 things do not mix very well though.
That is not to say things can’t be improved, for sure there is room to spare on the MOD implementation for this, to at least get more stable or precise timings given to plugins. For one, the filtering for the BPM retrieved from MIDI Clock is too heavy, making it so that changes take longer than expected to be reflected in host tempo and thus plugins too. Also phase sync, a MIDI Clock pulse should trigger the start of the beat, which is not the case right now.
I disagree that this is something to be solved system-wide and not directly in the plugins. Because of the translation between MIDI Clock to LV2 position is not ideal, some plugins wont work as expected when MIDI sync (MOD receiving data) is enabled.
Take the step sequencer for example, it is driven by the host LV2 position which makes it perfectly sync when the tempo is stable, when the tempo fluctuates a bit (BPM unstable because of jitter between MIDI Clock pulses) the steps wont always be triggered as expected.
In my opinion if the target is to do MIDI sync then the plugin shouldnt care about tempo/position translated from the host, instead it should use the MIDI clock pulses directly as a way to trigger the next step. That would make it “perfectly sync” because it is being driven directly by the MIDI Clock.
We have ways for plugins to directly access the MIDI clock pulses, this is in use by looperlative.
The path forward should be to update plugins to (optionally) make use of MIDI Clock, with the step sequencer being a good first contender.
(and of course also try to make the MIDI sync better, but best to acknowledge host provided tempo/position can’t be perfect with MIDI)