The point of the finally clause to take care of some important clean up, that MUST be done NO matter what. Here you make sure data is left in a consistent states, files properly closed etc.....
For this reason
Java is written to make sure that it is run, almost always. The return command is not powerful enough to override this.
System.exit is however, which is why in most cases I don't think it should be used. good for small programs but dangerous for larger ones. Also if the finally clause throws an untrapped exception, the finally clause won't be run.