I do not have the toolbox to test with, but symbolic numbers is what I would expect, due to the potential for loss of precision if double() is always output. For example,
subs(sym('2^N'), 'N', 55)
I would expect to give the exact integer result rather than converting it to double (which would only have 53 bits precision rather than e.g., 55)
Even something like,
subs(sym('PI/2'), 'PI', sym('pi'))
I would certainly expect to give Pi/2 as symbolic form, not the double precision approximation.