For years I specifically used a separate emacs daemon for ERC because I don't really know how to perfectly cleanly update a given package in a running emacs in-place, and I wanted to keep my IRC uptime (and I'm not using a bouncer for some reason). So I would just leave ERC running in a daemon for the machine's entire uptime without ever updating any of its packages.
This is giving me nostalgia for when I used to use bitlbee + libpurple and have all my chat+irc in a single client (ERC). Good times.
I made a couple shell functions/aliases to help me out. emacsd $servername and e for emacsclient -t. So spinning them up is trivial, and accessing them is just e -s $servername. With no name, it's just the default instance (used for random editing that's not part of a project or something I care to keep cleanly separated).