It's possible to reduce the size further, one of our devs has recently been experimenting about this in particular and I think has got down to 4MB without too much difficulty. The problem is that reducing it much further starts to mean being more careful about blacklisting stuff like modules in the python standard library, which can be hard to do automatically without breaking dependencies. It's highligted some potential optimisations in kivy's internals though, so maybe we can make it easier to leave out some non-essential kivy components.
Just to be clear about the build time thing, compiling python + project dependencies may take a few minutes (e.g. your 15 minute figure), but subsequent builds don't need to repeat this and will take just a few seconds.
As long as you blacklist unneeded libraries on Kivy, you can get the size down to 5 - 10 MB. I personally don't believe this download size is such a problem for users (many native Java apps are upwards of 5 MB).
What is a problem is the start-up time and battery usage, both much harder problems to address. Because they require the Python interpreter, Kivy apps take significantly longer to start-up, and use significantly more battery power than Java apps. I have some hope that Micropython may eventually offer a solution to this for Python on Android, although porting Kivy to Micropython will be a major task.
For battery usage, i'd love to see data for this, i think drain will come from the amount of action you put in your interface, as well as background processing you'll do, kivy itself, being opengl and cautious about what to update when changes happen, shouldn't add a lot of overhead on this.
I don't think porting to micropython is considered an option, usually, when we want more efficient code, the solution is to do less python, more C, we have a nice integration with Cython, and don't hesitate to go with it as soon as needed.