I did this was a watch-app and not a watchface (as I couldn't!), but shows why some permissions on watch faces should be considered.
Battery drain wise, in most cases, it only updates once per minute (like a watch face in LP mode) But every x minutes it does a makeJsonRequest() to update the temperature, and every y minutes, it gets the current location with GPS, and that is used to update the temperature.
Not that things like Comm and Position should be wide open, but what if a comm request are allowed ever 10 mins from a watchface, and GPS every 30 minutes? (this interval could be longer, of course!). Minimal battery drain, that could be adjusted if it's an issue. HR seems another valuse that a snapshot every z minutes might be worthwhile...)
It would allow the watchface to a bit more "alive" with other data. I crammed a bunch of stuff on the screen here including step data and a move bar! Example: