Well, the beans in your scenario are pseudo-scoped, this means that the container is unable to proxy them - which in turn leads to the deployment error.
I can't give you technical details about why this exception is thrown, would be interesting to test if it would work if you use pure @EJB annotations for dependency injection.
A workaround would be to change the scope to something proxyable like @RequestScoped...
Yes, I did it before with @EJB and it works. A stateless EJB does not need/have a scope. When using @In, I also inject the scope and the STATE of the other bean, so I guess, this is the reason, why I have to assign a scope explicitly.
However, it is much better to use @EJB in such scenarios - I only want to use the services and not want to hold some state/scope.