Right now with() is a bit limited because it can only allow static relations as declared in relations(). The underlying RAR can however support dynamic queries like you want. The problem lies in how to specify the with() parameters, because right now you can do the following deeply nested query:
Maybe set the option key as reserved words and process before model bindings? Or maybe there could have one method to modify each relation on run time and restored after the query completed.
I know relying on active records not making sense. But it make life easier.