It feels like there is no upper limit on the amount memory that an app can use. Is it regulated by the Journey platform in some way?
That is correct, but with a big asterix. It can be complex depending on if an app is in the background, and what platform it is on.
This is governed by the javascript VM heap, which is visible in the profile section of the debugger. On devices, you can connect using a debug container via USB and connect to the chrome device inspector to view the current state of the heap, and the total memory footprint of the app.