We could add overlays to every buffer, and whenever you change windows, remove the overlay from the current buffer and add it back to the previous buffer. But this is identical to what `auto-dim-other-buffers` already does now, only harder to write. When you remove it from the current buffer, you could have the same buffer open in multiple windows, and in all of them it's gone.
Or, we could have it reversed. We could only have an overlay on the current buffer at any given time, and give it the window of (selected-window), and keep updating these any time you change buffers or windows. This would successfully "differentiate" the current window from every other window and allow you to style it differently. But it has the problem of being the exact inverse of the original goal, which is to dim other windows. It would be more like `auto-prominentize-current-window`.
The problem would then be that you now need to make the current buffer look different than the default face. But by definition, the default face is *exactly* what you want to be editing in.
So one hacky way to solve this is to somehow "switch out" the default face with the one you want to be considered "dimmed", and give the current-window-overlay the face that was originally your "default face".
This seems like it *could* work, but it's terrifying. Absolutely terrifying. I don't know if I'm qualified for this task, especially since I barely know elisp.