The reason I've implemented it this way is because this is the Symfony way. I agree this could be done differently and slightly better, but I think being consistent to the Symfony system is better.

We could do a PR to Symfony though, but this would break BC and wouldn't get implemented.