OOTB there is a relationship between a task and a workflow activity creating the task. This is a reference to the activity instance. Note, it is inactive in dictionary, thus it can't be selected in filter builder etc. Although, this fact brings extra (unwanted) food for thoughts.
Additionally, wf_activity is a reference to workflow activity instance. Instance of activity which is used in the workflow. Be careful here, if you tie a rule based on activity id, you'll get it changed after the workflow version is changed.
It ends up with system (internal) results only e.g. success if activity was successful. Return activity sets a parent workflow scratchpad. An extra activity is required to analyze the result of the subflow execution.