I do not. All of my main lighting is zwave. I have some sonoffs that control some things but they are basically always on and on power loss they come back on when power is restored so I don’t have to mess with retain bits or anything like that. My other MQTT actuators are momentary actuators like my garage door openers where I absolutely do not want to use the retain bit.
Whether or not this is appropriate for you is really only an question you can answer. When you send a message with the retain bit, that message will stay on that topic until another message with a retain bit gets published to that topic. This means any time the device loses its connection from the broker will get the retained message when it reconnects whether or not it has already processed that message. That may be perfectly acceptable in your case or it may be a disaster.
The tl;dr is you need to look at exactly the behavior you want and choose an approach that works for that behavior. There will not be a single solution that works in all cases.
Other common approaches is to use settings on the device to remember their prior state, System started Rules, and System started Rules with restoreOnStartup.