The command "make distclean" does not remove the debugobj, sobin, and soobj directories (it removes all the files in those directories, this suggests that leaving the directories is unintended).
Grabbing a Ralph's bugs.
commit r11447 adds a few rmdir's to various make *clean targets to try to remove created *obj/*bin directories, after cleaning them out. Tt does not do unsafe recursive delete, nor remove non-empty directories with left-over user files. There are some harmless but unsighty "error ignored" messages from trying to remove directories when they don't exist, or haven't been created.