fcm으로 메세지가 누수 되는건 구현하는 쪽 이슈로 생각됩니다. ask 받을 기간이나 메세지 큐 사이즈를 벗어나 삭제되지 않는 이상 메세지 받은 이후 ask를 해야 삭제 되게 만들면 fcm 받는 리시버가 종료 되어 못 받는것이면 몰라도 받지 않는 메세지가 사라지지는 않습니다. leak이 발생하는 라이브러리를 누가 쓰겠어요..ㅎㅎ
중소 기업에서야 푸시서버 유지 보수비보다 fcm쓰는게 저코스트라 fcm 같은 걸 쓰지만, 카카오 같이 대규모 서비스의 경우 fcm 같은걸 별도로 만들어 운영하는게 저렴하기 때문에, 별도 푸시 서버를 운영한다고 보시면 됩니다.
카카오 패키지명 같은건 예외로 들어가서 배터리 최적화 시에도 종료 안하고 계속 백그라운드에서 동작 되고 있을 가능성이 높아, 계속 소켓을 띄우는 방식도 가능은 한데, 소켓을 계속 열고 있는 건 서버의 소켓 리소스를 계속 잡고 있는거라. 서버 비용이 올라가, 보통 옵저버 패턴으로 https 메세지를 주고 받는 방식을 사용합니다.