Symfony 7.3 added the capability to define invokable commands, which allowed to simplify many of them, but not all. See #2452 and #2509
Symfony 7.4/8.0 is improving even further on them https://symfony.com/blog/new-in-symfony-7-4-improved-invokable-commands. This should allow to migrate more commands to the invokable approach.
It should be even possible to stop extending Command all together, but that requires the commands container to be extended to allow objects extending Command or marked with #[AsCommand].