I've had another read of your original question and I think I see there was some confusion.
The @Remove annotation does not indicate that a method is a call-back. It simply says that the statefull session bean should be recycled after this method call finished.
For example, assume you have a statefull session bean with 4 methods: doStep1(), doStep2(), doStep3() and doStep4(). The bean should retain conversational state throughout all the steps. However, after the application calls doStep4(), it is finished with this bean. Using the @Remove annotation, you tell the container to recycle the bean after this method call is finished.
Without the @Remove annotation on that method, the bean would persist (and take up valuable resources) until it times out.
I think what you're looking for, however, is the @PreDestroy annotation. This can be used on any bean (stateless/statefull session and MDB) and annotates a method (public, private, etc.) as a callback for the lifecycle event.
Sorry I went off-track with my first response - my brain was stuck on the @Remove annotation rather than what you were actually asking