What's the point of allowing libsystemd0 to exist when systemd has
been purged?

So that programs which interface with systemd can detect whether or not
systemd is present, and fall back to alternate code paths when it's not.
As I understand matters (without having actually dug into the code),
that detection code literally is what libsystemd0 *is*; when systemd is
present, it passes through function calls to be handled in appropriate
places, and when systemd is not present, it returns an appropriate
default or failure value.