Has lazy task creation broken rules?

In short I am looking at a situation where as per the following pseudo-code

tasks.addRule( 'Something that augments A') { name ->
  if( name == 'taskAbcToJpg'  && tasks.named('taskAbc') ) {
    tasks.create( name, DefaultTask )

tasks.register('taskAbc', TaskTypeA)

As from Gradle 4.9, Gradle will now say that taskAbcToJpg does not exist when specified purely from the command-line.

I have a much more detailed example, should someone be interested, but firstly I am wondering whether something has been missed in the lazy task implementation.

It works if the the task created in the rule (taskAbcToJpg) in the above example is not lazily created. That makes sense to me, for if one is going to specify a task on the command-line it means that it should be used and that it can be created immediately.