The problem is there's no such thing as a "last accessed" or "last used" field for registered DLLs (you can check for registered DLLs by going to Regedit\HKEY_CLASSES_ROOT\CLSID\). None of them have any field pertaining to whether or not they were used, only that they exist for use. Other mechanisms may or may not be in play as well (see https://en.wikipedia.org/wiki/Dll_hell#Solutions
). But for the most part, the details that you want do not exist, and it probably won't exist because that may break compatibility.
To be honest at this point, Microsoft should just create a new NT kernel that only uses the modern methods of libraries and whatever and include a "XP Mode" for Windows 7, XP, and 98 (because why not?) for those programs that can't run on the new kernel.
But for now the only way to clean anything up is a new install of Windows. Which is why you should always make a system image after you've installed the base programs and configured settings to make this as painless as possible.