No tengo instalado WhatsApp pero tuve una duda similar con Truacaller así que intentaré explicar un poco cómo funciona y cómo forcé a Truecaller a hibernar.
En Android hay servicios que pueden ser ejecutados por acciones (triggers). Cuando ocurre algún evento, por ejemplo, una llamada telefónica o un enchufe, este evento se enviará a todas las aplicaciones que utilizan el servicio de llamadas telefónicas, incluso si estas aplicaciones están hibernadas. Algunos servicios son críticos y no pueden cerrarse cuando el sistema se duerme. La aplicación puede evitar ser adormecida reportando el uso de estos servicios. Tampoco le di el permiso a Truecaller pero estuvo activo todo el tiempo. Incluso lo forcé a hibernar con la versión completa de Greenify (con el módulo Xposed) pero estaba activo de todas formas.
Lo que hice con Truecaller fue instalar DisableService (se necesita Root) y vi qué servicios utilizaba esta aplicación. No sabía qué servicio debía desactivar así que desactivé todos. La aplicación, por supuesto, se estrelló cuando intenté abrirla. Así que fui habilitando repetidamente algunos servicios y observando qué funciones se restablecían. Con eso encontré servicios que hacían a Truecaller invencible. Ahora Truecaller funciona sólo cuando necesito comprobar un número desconocido.