After few weeks of uptime system's volume OSD re-appears, even though HideVolumeOSD is still running.
My hypothesis is that eventually windows applies some updates overnight without restarting, and just reloading explorer.
HideVolumeOSD does not detect that his hooks are no longer working, and windows is able to start showing OSD.
After manual restart HideVolumeOSD starts working again.