So this morning I went back and tried to deploy the ear and flex war together using Flex Builder 3. After some more testing I've realized that the problem is not with Flex. The error that I'm getting while making a remote call seems to be caused by the Seam Framework:
ERROR [[MessageBrokerServlet]] Servlet.service() for servlet MessageBrokerServlet threw exception java.lang.IllegalStateException: Attempted to invoke a Seam component outside an initialized application at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36)
...
Once I've removed Seam from the project, BlazeDS calls were successfully placed.
This is still really strange because if I deploy it packed as opposed to an exploded ear then everything works just fine (except that I will not be able to use Flex debugger).
I guess that for now the solution is to not use the Seam Framework. I've tried this with both Seam 2.2.0.GA and 2.2.1.CR1 but without success.