Because of that, every user service has to define DBUS_SESSION_BUS_ADDRESS. Sway is not started by openrc. Sway is started by emptty which is a login manager. A login manager is unaffected by openrc user services.
Sway must get DBUS_SESSION_BUS_ADDRESS, or programs started inside sway don't have access to dbus session bus.
A workaround is to add export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" to ~/.profile.
dinit has its own environment, and you can insert environment variables into dinit's environment.
Before using openrc user services, emptty started sway with a session dbus. If emptty starts sway with a session dbus, everything gets DBUS_SESSION_BUS_ADDRESS inside the sway session.