from an "architectural point of view", the key to a good app is a fit for purpose API.
of all the solution option 1 sounds the least effective, you suggest adding complexity, should use the ODataModel for OData calls.
option 2: how is using a function in a controller or a utility breaking MVC? how do you lose all the model binding? also its static text why do you care is it is bound or derived
I am not following you logic
if you can derive the path you should be able to either bind dynamically directly in the controller or as a last resort ODataModel.read and update the controls manually on callback
jsp