How about extending d() with an additional buffer parameter?
@buffer:string would be optional and default to DEBUG.
However then when suppressing it will only suppress messages of the buffer-type DEBUG (default).
So if you add an own Buffer for you Addon:
Lua Code:
LibDebug:AddBuffer("MY_ADDON_OUTPUT")
and then track with
Lua Code:
d("Loot dropped: [xyz]", "MY_ADDON_OUTPUT")
it will still get displayed as it isn't considered an Debug-Message (and also won't get logged in the Debug-Log!).
And even in the case LibDebug wouldn't be present the second parameter of d() would just do nothing as in only getting ignored.