A bit of context here: the FF vsync infrastructure is optimized for classical buffer swap events like we have on other platforms, including X11. So whenever FF may want to draw in the future, it enables the vsync source, assuming it just passively listens to those events. If nothing happens for a short while, it should disable the vsync source again until it needs it again.
I just checked again using
WAYLAND_DEBUG=1 firefox and things work as expected on nightly+gnome - frame callbacks are requested more often than on some other Wayland apps, but still stop being requested when really being idle. Greg, can you confirm that? Because if you see continues frame request, then there's a bug somewhere.
So get optimal behaviour, we'd need to implement bug 1563075, which would change the architecture to be more Wayland friendly, but that's a big undertaking with relatively little gain AFAICS.
Concerning the scale part: that's something we should indeed fix - we only need to set it when something changed.