"Joe-E is a subset of the Java programming language designed to support programming according to object-capability discipline." http://code.google.com/p/joe-e/
I think another application could be software transactional memory. As far as I can tell, this more or less requires a functional implementation (since you can't roll back side-effects most of the time).