Well, a bit more research indicates that giving jbpm its own classloader is what is causing the problem. I commented out the "loader-repository" section in the jboss-service.xml file and it can find the datasource.
I have no idea why that would affect a JNDI lookup, but my guess is that the underlying error is really some sorta ClassNotFound and it just manifests itself as a datasource lookup problem.
Anybody have any other suggestions for how I can run the Jbpm service without polluting the rest of my JBoss libraries & applications? I really want to keep all the Jbpm dependencies separate.