Message driven beans are similar to stateless session beans in that they have no conversational state. Chapter 2.4.2 even explicitly mentions them as being stateless. It would therefore make sense to allow singleton message driven beans alongside singleton stateless session beans. This would allow the container to get rid of the bean pooling and the concurrency level would no longer be limited by the pool size (if concurrency control is bean).
A nice consequence is that in such cases javax.resource.spi.endpoint.MessageEndpointFactory#createEndpoint would no longer throw a UnavailableException because the pool is exhausted.
I can't subscribe to email@example.com for whatever reason so I created this issue instead.