Currently revealed difference is about reply message. The socet listening strategy helps to avoid it if needed. Overall the watch strategy offer cleaner and simpler codding. That's of course is opinion which doesn't qualify to be discussed.
But what IS replay message. I have haven't seen anything about this in the documentation. The only msg mentioned is this.msg which is the last msg received by the ui-template node
If you refresh the page (or open another browser window on it) then node red replays the last message sent to the template. That allows the node to set its current state, assuming that it only needs one message to do that (which is what the other thread is all about).
Yep, for clarification, as Colin has mentioned, this.msg can changed on 2 events:
widget-load: When the Dashboard/page first renders
msg-input: When an input arrives via Node-RED to the ui-template node
If you run a watch on msg, then that will fire in both of those instances. If you add your own socket listener, then it'll just fire when a new msg comes in via the input.