Yes, do a burst read like the datasheet suggests and like the Maxim example code does.
You don't have to do it for other multi-byte transfers. Since the address auto-increments with each read or write a burst is both convenient and more efficient. But it's your choice.
When writing to the time registers you still have a potential issue of a rollover while in between writing the different bytes. This is dealt with by the fact that writing to the seconds register resets the internal sub-seconds counter to zero. Then you have a whole second to write the other time/date registers before any rollover is possible. So if you just write the seconds register first you'll be fine. I think you are currently doing that.
I wish Maxim had exposed that sub-seconds counter instead of just the seconds. It's one of the reasons I chose not to use the DS3234.