You can safely discard output parameters without worrying about whether they are overwriting a work or local field used elsewhere.
You can trim your model of unnecessary functions; for example, a suite of RTVOBJ functions, each of which returns a different output, can be replaced with a single general purpose RTVOBJ.
You do not need to define special fields to use as discard targets.
Since the NLL context is output-only, it can be used repeatedly to receive output from multiple functions.