You can clone with
Once inside a controller, $this->forward() is called, request.attributes.get('_route') is null.
This is because the duplicate is called with a non empty array for attributes (_controller) so the attributes are not totally cloned from the previous request.
And should the _route value take the old route? or the new one?
Forwarding does not forward to a route but to a controller. You don't even need to have a route for your controller.
You should never rely on the _route. It's only available for debugging purpose.
@fabpot What is the right way to access to the current route name ? My use case is to make a generic listener in KernelEvents::REQUEST.
$request->attribute->get('_route') is the way to access it. But if you use forward, there is simply no route as you are generally forwarding to a controller, not to a path needing the router to find the controller.
I understand, thanks