Is it OK to register tasks on the configuration phase of another task?


I have a plugin P which registers a task T. T translates each configuration dependency into a task (for code generation) and depends on these tasks.
The thing is - some of the tasks I’m registering on the fly during the configuration phase of T - they do not pre-exist.
It seems to work very well - my question is - Is that a good practice - in terms of task graph generation (as the task creates additional tasks) etc? If not - what is the alternative? I wish to NOT create/register the tasks unless the plugin is applied and task is selected to execute for performance reasons.