$sqrt vs %sqrt



Dear all in the Maxima group,
 
when working with maxima from a lisp program I sometimes wonder why 
certain operations are not carried out fully.

For example I often do something like
(maxima::mfuncall  'maxima::$diff f x)
(here f and x have gone through maxima::meval) and most of the time this 
works. Square roots, however, behave in a strange manner as they often 
resist differentiation, i.e. I get back something like   
-'diff(sqrt(v5[2]),v5[2],1)

Maybe the problem comes from the following behaviour which I don't 
understand:
When I am (in-package "MAXIMA") and do (parse-string "sqrt(x)")  then I 
get  ((%SQRT) $X).
However, when I do  (maxima::parse-string "sqrt(x)") from my package I 
get  (($SQRT) $X).
So what is the difference between $sqrt and %sqrt?
 
I use Maxima 5.16.3 and Lispworks 5.1.

Reinhard Oldenburg