Shouldn't del be linear?



Hello group,

I think that the "differential" del should be a linear operator, so
that for example del(3*x) should simplify to 3*del(x).  More
generally del(f(x)) should simplify to f'(x)*del(x).   

It seems that maxima does simplify del(3*x) to 3*del(x) when it
knows that del(3*x) is the result of a differentiation:

f : x^2 * y^3
diff(f) 
  /*==> 3*x^2*y^2*del(y)+2*x*y^3*del(x) <==*/
diff(f), y = 3*x 
  /*==> 135*x^4*del(x) <==*/
f, y = 3*x 
  /*==> 27*x^5 <==*/
diff(%) 
  /*==> 135*x^4*del(x) <==*/ 



However, if we first differentiate and then substitute  y = 3*x the
differential of 3*x remains unsimplified.  

diff(f);
%, y = 3*x; 
  /*==> 27*x^4*del(3*x)+54*x^4*del(x) <==*/

Am I missing something?  Is there a command that will simplify the
above expression to 135*x^4*del(x)?

Best,
Nikos