Hello Brad.
Actually, only iRule assigned to VS could be executed. So your idea of calling another iRules from a main iRule is not possible.
Anyway, there is a way to isolate virtual hosts (app1, app2, ...) using VIP-targeting-VIP.
The idea is to have a main VS which catches all the requests and redirects each request by app to another VS (using the "virtual" command).
In this "new" virtual, you could assign another iRules that won't interfere with the rest of the VS.
REF - https://clouddocs.f5.com/api/irules/virtual.html
Regards,
Dario.