Site url is not generated correctly when using environment variables
Cache poisoning would only happen if you don't hard-set your @web alias manually and it is auto-determined.
Set it in your config/general.php with:
'aliases' =&gt; [
    'web' =&gt; getenv('SITE_BASE_URL'),
],

Then you'll be able to revert to using it in your Control Panel.
In terms of why this happened; you can't add to an environment variable the way you can with an alias so http://$SITE_BASE_URL/en will become a string and the variable aspect of it will disappear.
When you define $SITE_BASE_URL, it can only be used as is in the CP so if you wanted to use variables for you site, you would need to define one for each site/language.