I'd say that full hard-restart (including oscillator reset via test-bit) feels obligatory only with drums and snares as you really need that sharp "click" in the beginning of the sound/instrument. The rest (lead melody, bass, arpeggios etc.) should be fine with soft-restarting.
Now it's time to make things more complicated.
First of all, emulated environment works differently than real C64. Long story short, Vice 2.xx (reSID-fp engine) will usually not cut the sound when real C64 sometimes will, but (surprisingly!) Vice 3.xx will provide way more hiccups to your ears than real C64. Therefore, some hard-restart delays should be tested via trial-and-error, but usually 2 frames total are enough to do the job with short sounds.
Second, you need to set proper delay (DL) values to both gate closed (e.g. $00) and oscillator hard-restart ($09) frames/lines in order to make it work. Please note that using multi-speed tunes (x2/x4/x8) will require you to adjust those delay values accordingly (but not necessarily by multiplying them).
If you take a closer look at Amelinium's YT video, you'll notice that she restarts ADSR by setting 0000 value in WGWG ($00=no waveform and gate closed), and ADSR value set as 0F00. Then she'll open the gate by setting WG (gate) to $09 along with proper ADSR values that will later apply to the instrument ($41, $55... whatever). This is very similar to what I do and what I've also seen in Goto80's tracks (also a good reference).
Works like a charm and I'm very thankful we actually have manual hard-restart in defMON. The freedom of editing with this tool is simply mindfucking and gives tons of possibilities.