SlickRick :
Hi,
Sorry for the late jumping in...
I do not think that this is a bug and would treat it as expected behavior.
The reason is that Execution Plan and execution by tag are separate unrelated entities. It is possible to add the same script routine/keyword test into Execution Plan more than once as separate tests and provide different parameter values for every entry. Also, Execution Plan may not contain test entry for some script routine/keyword test but this script routine/keyword test still can be called and executed by tag.
You can still use your current approach with the wrapper that calls your test with expected parameter value. If it is possible to provide default value for the optional parameter, you can also set default value to some obviously incorrect value (say, to -2 (minus two) and then, at the start of the test check parameter's value. If it equals to -2 then set it to the value that you need (this means that test was called by tag) and leave it as it is otherwise (which means test was called from Execution Plan).
Another technique that might work is to check in your test if TestItems.Current object exists. If it does, this means that your test was called from Execution Plan. See https://support.smartbear.com/testcomplete/docs/reference/project-objects/project/testitems/current.html for more details.