You are right. I was confused. Thanks for the link so I could clear this up.
Either way, a user-space udev API was broken. The solution pointed was to use a systemd API to solve the problem.
It's still a compatibility breakage, and if that solution is to be used across distributions it should be discussed outside systemd, not forced on all distributions. udev is a crucial Linux plumbing infrastructure. systemd isn't (at least not yet) so it can not force global policy and compatibility APIs.
The same applies for DBUS. It can eventually be considered an essential package on desktop Linux, but it's far from it on a global scale. So udev can make a DBUS API available, but never have an hard dependency on DBUS (or any DBUS utilities or API).
For example, there may be reasons for having udev on an Android system, but there are no strong reasons to have DBUS or systemd. The same for other specific-use or embedded Linux systems.