No help here, but I noticed the same today (when producing JMS resources).
The @Disposes method works when the @RequestScoped annotation is removed (but then the producer does not work as intended).
I'm also getting same behavior not only for @Schedule method, but for onMessage() method of @MessageDriven bean too. (JBoss AS 7.1.1.Final "Brontes")
Also @PreDestoy method not invoked for @RequestScoped beans.
Is there any workaround for this situation ?
Maybe we can somehow start and finish "request" programmatically so weld will call all needed (@PreDestroy, @Dispose) methods ?
this is a know issue in AS7 integration component - the request context is not destroyed properly, that's why neither the disposer method nor the predestory callback is invoked - see AS7-4280. AFAIK this affects asynchronous methods as well.