Just curious, why is that a problem? The whole idea behind Android is that handset manufacturers can be free to vary their underlying linux implementations as long as they can adapt their drivers to the Android libraries. Then the programmer can code to this common interface without worrying about differences between handsets. If you were coding directly to the handsets native functionality then you break the cross platform universality. Then its just a repeat of JavaME all over again where you end up with separate builds for different devices.
From what I've read so far, there technically shouldn't be a reason why Ruby (via JRuby) and Python (via Jython) couldnt eventually be used to code Android apps. The SDK compiles Java code to native java byte code, which is in turn compiled to "Dalvik" byte code to be used by the Android VM. How the java byte code is generated (javac, jruby, jython, etc) should not matter, assuming it is using only the supported libraries.