This app was mentioned in 3 comments, with an average of 27.67 upvotes
For (a), it's certainly possible, and there are people doing so commercially. There are well known disadvantages which can be quite important (main ones are non-native widgets and slow app start especially on the first run, though the latter is almost negligible on many newer devices), but whether this matters to you is your choice. Personally if I set out to make a productivity-type app that I wanted to make money with then I'd probably use java or possibly another cross-platform tool, but for 2d games, scientific tools or stuff I'm just messing with (especially when using python code that I already have on the desktop) I'd go with kivy. I might be biased, though, from the fact that I'm a kivy dev; java or other frameworks are obviously also good or potentially better choices in all these cases.
For (b), I don't know how this kind of font stuff is normally handled. If the Elvish script is mapped to existing code points then you can just use any .ttf font as normal.
Edit: One nice Kivy app I've seen recently is Kognitivo. It showcases quite well what you can achieve with kivy, especially (such as with the themeing) in ways that aren't obvious from the normal examples.
The reality is that there are some well known disadvantages of using kivy (sometimes slow startup time, large APKs, non-native widgets...), and that for many people these are important. There's also the fact that, although it does have a fairly active community, there's far less discussion about it online than for native development or some other frameworks. On the other hand, one reason you see 'just use Kivy' is that it is mostly the choice for Python apps on Android, I think it's much more broadly capable for app development than anything else currently available.
Mostly it's up to you whether the disadvantages are a problem - some people don't mind and even use Kivy commercially, including several of the core developers, but as you've seen other people consider the idea ridiculous.
I'm a Kivy core developer myself (in fact, probably the main developer of python-for-android at the moment), and personally I mostly use it for the fun and convenience of bringing smaller python scripts and applications to android, in ways that would be much less convenient if I had to rewrite e.g. my scientific visualisations in Java. I think Kivy is very convenient and capable for this, and more broadly I've also been pushing python-for-android more towards being able to use other backends like Vispy or pysdl2. If I decided I wanted to make money on a productivity-type app I'd be more likely to look into java, as kivy's disadvantages are more important here, but on the other hand I'd certainly go with kivy for simpler 2d games or scientific applications for which I consider the standard disadvantages less important. Of course, I'm probably biased, there are many other good (but non-python) tools and frameworks for these things.
I've recently seen some activity on some (in my opinion) very nice Kivy apps, particularly kognitivo and barly. These both demonstrate quite well what Kivy is capable of in ways that the normal tutorials and simple apps usually don't, e.g. taking the time to theme it more (this is always possible, just most people use the defaults). You might find them interesting examples.
I'm always happy to self advertise :D https://play.google.com/store/apps/details?id=org.kognitivo.kognitivo