For others who might have the same question i want to add the observed behavior (not officially documented AFAIK, if not folks can correct & point me to it).
The observed behavior as i suspected is that they are being executed by the thread that completes the future.
It would have been nice if the spring implementation had provided the same support as the guava one, but as it stands the above behavior is what we have. This is still better than the guava default of
MoreExecutors.directExecutor() where its done in the thread that invokes execute..
CLICK HERE to find out more related problems solutions.