You may have been lucky or privileged in working in high competency environments where the essence of containerization is truly captured in the dev practices. The vast majority of mediocre eng shops do "dockerize everything" but would still end up with leaks everywhere, artifacts in s3, endpoint dependencies, mounts that depend on the helm chart etc.
IMO containerization as a principle has failed the test of making mediocre teams productive. Such teams cargo cult ape on this term and think because they've done it theyre now webscale.
I personally like to still start with "this code should run anywhere" principle. On python especially with uv now this seems like a safer bet. At the least this forces the engineers to explicitly list out stupid dependencies in the reader.
I mean, to be honest, I'm the one who sets the precedent for most of the teams that I work with; that's one of my roles.
And personally, I don't necessarily follow a hard line with this. My Python API services run foregrounded in a terminal with uv run, but that doesn't mean that I'm using SQLite instead of Postgres. Any of the backend services I need that don't make sense to be foregrounded still run the same versions as prod containerized. And front end teams will tend to run a containerized API service since they're not modifying it as often.
Point being there is some conscious leeway here, but it's bounded and well-defined.