Form pre-fill does not work on forms hosted anywhere besides Marketo though, right?
Bear in mind that a form that uses the Munchkin API is pushing information, not pulling it, no matter what. Using the Munchkin API to update the lead database is not substantively different from using the Forms 2.0 API (the Munchkin API offers a helpful level of security, but also lacks several kinds of error detection). In the vast majority of cases using a Forms 2.0 API post in the background is preferable to using the Munchkin API.
With that out of the way, there are still several answers to your question. You can accomplish form prefill on a non-Marketo page, with no limitations, using some of my "special sauce." Gatewaying through the REST API, on the contrary, is not special sauce but very dangerous and not recommended.