Using encoder/normalizer services directly is not supported, one must use the @serializer service, which will then call the appropriate encoder/normalizer services. Services that have the normalizer or encoder tag really are internal/private implementation details to culminate in an operational @serializer service. These never were APIs. They implement Symfony's "Serializer component" API.
Hence we're now automatically marking these services as private.
However, it is valid to inject a normalizer into another normalizer. This change only disallows code that does \Drupal::service('some normalizer')->normalize(…) or $this->container->get('some normalizer')->normalize(…). It's still possible to inject existing normalizers into your normalizers. But it's strongly recommended to not call specific normalizers, but instead let the @serializer service do what it was designed to do: figure out which normalizer to call! So, it is recommended to do $this->serializer->normalize(…) instead. That is the actual API.