Most battery-powered Zigbee devices, in my experience, actually do listen for commands like "Refresh," but most battery-powered Z-Wave devices won't unless they are listed as FLiRS (beaming-capable), which is usually only things like door locks or motors (e.g., window coverings). But to conserve battery life, I wouldn't do this too often anyway.
I don't have any Iris v3 contact sensors, but my Iris v3 motion sensors are no exception to the above (there are indeed exceptions; the Eria Zigbee Remote, for example, and of course Green Power devices, but Hubitat doesn't support those anyway). Since yours wasn't working, my guess is that it's likely the result of another problem. Sometimes this would be a dead battery, but the fact that yours is still working after just removing it and reinserting it means that might not be the case (and 87% obviously doesn't sound like a bad measurement and shouldn't be, but battery reporting is notoriously unreliable on many devices, so I'd be hesitant to trust this--but that's still high enough I probably would unless you just had a dud battery that died before it could even send a new report).
That being said, like you and marktheknife, I do like to use a "Device Watchdog"-style app to monitor this. (I wrote my own, but that or a couple other community options should work fine.) I don't find battery reporting alone to be reliable; the tradeoff is that you need to have a feel for how often your devices normally check in. For devices that report temperature like the Iris v3 (and v2) devices, I usually get reports at least once every few hours, though you'll have to check your "Last Activity At" and event history for you particular devices to get a better feel.