I'm not sure if you'd call this a bug, but two similar commands do not function the same.
A variable set with -uN then incremented with /inc will still unset after N seconds.
A hash item set with -uN then incremented with /hinc will not unset after N seconds.
example
//set -u2 %test 1 | echo -a %test | /inc %test | echo -a %test | .timer 1 3 echo -a %!test
//hadd -mu2 test test 1 | echo -a $hget(test,test) | hinc test test | echo -a $hget(test,test) | .timer 1 3 echo -a $!hget(test,test) | .timer 1 4 hfree test
the //set example echos 1, 2, * /echo: insufficient parameters
the //hadd exmaple echos 1, 2, 2
The first output is expected, but the second shows a different behavior.