Since Phaser v3.50.0 the WORLD_STEP event passes the Arcade Physics delta time. You can use it to implement precise bullet lifespans. Bullet lifespans are slightly simpler than bullet ranges since no distances need to be calculated.
function fireBullet (bullet)
{
// …
bullet.setState(BULLET_LIFESPAN);
}
function updateBullet(bullet, delta) {
bullet.state -= delta;
if (bullet.state <= 0) {
bullet.disableBody(true, true);
}
}