inconsistency with complex numbers?



Dear developers and users of Maxima,
troubleshooting a program of mine, I have discovered a Maxima's 
behaviour which appears inconsistent to me.
There is a strange utilization of integer, real and complex numbers.
Input of the example:

     kill(all)$

     a: 0.1+%i*0.0;
     b: 0.0+%i*0.0;
     c: 0.0+%i*0.1;
     d: 0.1+%i*0.1;

     realpart(b);
     realpart(c);

     is(realpart(a)=realpart(d));
     is(realpart(b)=realpart(c));
     is(imagpart(c)=imagpart(d));
     is(imagpart(a)=imagpart(b));

     exp(%i*0);
     exp(%i*0.0);
     limit(exp(%i*x),x,0.0,plus);

     is(limit(exp(%i*x),x,0.0,plus)=exp(%i*0.0));

     build_info();

output of the example:

     0.1
     0.0
     0.1*%i
     0.1*%i+0.1
     0.0
     0
     true
     false
     true
     true
     1
     1.0
     1
     false
     Maxima version: 5.26.0
     Maxima build date: 22:48 1/15/2012
     Host type: i686-pc-mingw32
     Lisp implementation type: GNU Common Lisp (GCL)
     Lisp implementation version: GCL 2.6.8


Particularly interesting the tests:
     is(realpart(b)=realpart(c))
     is(limit(exp(%i*x),x,0.0,plus)=exp(%i*0.0))
both should produce true rather than false.
Any idea about?
Do I improperly/wrongly use Maxima? Is it a Maxima's bug?
Thanks in advance for your support.
Kind Regards
Claudio