That's a special combination of AEM as a Cloud Service with the Repository Initializer, and it's working as expected. Let me explain the details why this is working as expected.
In AEM CS the production instances are always identical to the Stage instances (from an application point of view, meaning /apps and /libs). That means that the AEM images are built once and the deployed to Stage and PROD (as part of the deployment process).
Now, these images are immutable during runtime. That means that any change in /apps and /libs must be executed during the build-image phase of the pipeline. The biggest part is the addition of your application into /apps, but there is also the usecase that some ACLs need to be applied at this phase to /apps and /libs. That means that the repoinit scripts must be executed at the build time already.
(But on the other hand side, I am not totally sure if at that buildtime already a runmode is respected ... it would make sense though.)
Ok, is this a problem? Normally it should not, because your Stage should be identical to PROD. That means if you want to add any ACL to /apps and/or /libs, you should do it in both cases. And later on you can adjust via group memberships if these ACLs are really taking effect.
That means that during stage build these scripts are applied, and you get the same image in PROD.