@wradcliffe, I know almost nothing about the real UIKit either and have only used the Pythonista interfaces in the ui module. The concept applies to a lot of things though, convenient "magic" always comes with some restrictions.
Low-level vs. high-level programming languages have the same problem. Using C you can somehow control almost any part of your computer, both hardware and software, but you better be sure that ints are as long as you expect them to or things will go wrong. Higher-level languages like Java, Python, Ruby, etc. take care of many compatibility issues for you, but some things can only be done with C extensions and you most certainly can't write device drivers. Brainfuck is perhaps the most portable and platform-independent language out there, but it lacks any features beyond basic memory operations and standard input/output access.