The thing is you might not be adding the sidecars yourself.
Kubernetes has a resource called MutatingAdmissionWebhook that allows mutations of the Pod object before creation.
I think the most common use case is for service meshes. Your Deployment might not have any sidecars, but the service mesh controller will automatically add a network proxy container to your pod via the admission webhook.
Another use case would be OpenTelemetry or some other observability service sidecar injection for auto-instrumentation.