I like the idea of splitting out obd comms into a separate library, I've been thinking about that for a while. For that matter, it went into the TODO at revision 100; right now, we're on revision 345.
The fundamental different in architecture between gps and obd is that gps can essentially just be listened to; you listen to the stream and pick out the bits you want; if you're sufficiently determined, you can interpolate to get almost arbitrary data rates. OBD is more challenge-request, and highly rate-limited.
My initial inclination is to separate the OBD communication into a separate library, and change logger to use that [should be simple, since the API probably won't change much]. As to a pluggable daemon, I don't know how well it'll actually work. But once I've split the obd comms into a separate library, the described daemon would be relatively easy if you can figure out how to *actually* get everything working.