No defined TaskOutputs != no configured optional TaskOutputs?

I’m not sure whether this is an error or wanted behaviour, thus I post it as Question. If you have a task without defined TaskOutputs, the task is always run. If you have a task with defined optional TaskOutputs (@OutputFile @Optional File foo), the task is only run if the input changes if not output was configured. Could this be considered an inconsistency because it should be treated the same as if no TaskOutputs are defined, or is this wanted behaviour?