I guess that this is a normal behavior for J2EE 5 container. Because every war file(inside or outside ear) has its own classloader. For instance I have there war files in my ear and they all have there own copies of my singletons. Another thing is that EJB application has its own classloader and when you call these methods the first string returns your war classloader and the second returns EJB app classloader.
I guess that if you try to call the same ejb from a standalone client you will find that Thread's classloader is a classloader of this client(I'm not quite sure about this one).
If you want to read some additional info take a look at the following link:
http://community.jboss.org/wiki/classloadingconfiguration