If the Wiki is accurate, it seems to clearly indicate that all of the requirements must be met for despawning (emphasis mine).
In Bedrock Edition, each loaded chunk has a 1 in 50 chance each tick of trying to despawn an entity. If selected, a random entity in the chunk is chosen and despawned, subject to all of the following conditions:
- The entity is more than 54 blocks circular radius away from the nearest player.
- The light level is lower than 8.
- For monsters, the light level is greater than 8, and if it is a surface mob, it is day time.
- The entity is older than a certain age (the exact age is unknown and may depend on the type of entity).
- The entity does not have persistence (see below)
I think those conditions only make sense if they are "AND" not "OR". Otherwise, an entity right in front of you could despawn if any one of the other conditions were met.
IMO there are two main problems with the logic above:
1) Monsters in dark holes underground will never despawn (frankly I don't get the light level requirements at all - why does it matter?)
2) Unloaded chunks are never processed, which as I understand it affects total mob caps
I also think that giving spawner-produced mobs "persistence" is not helpful. It's fine to have a spider spawner working overtime, but if I'm not in that area (even though the spawner is in a loaded chunk), the spiders ought to despawn from time to time. Give room in the cap for a creeper to spawn just around the corner where I'm exploring.