Method isDone() does not return true after call of cancel method() on Future object bound to call of EJB asynchronous method.
Please check my test:
It's against documentation of cancel method (http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html#cancel%28boolean%29) where is said:
"After this method returns, subsequent calls to isDone() will always return true. Subsequent calls to isCancelled() will always return true if this method returned true."