Forgive me, maybe you haven't heard of stb
https://github.com/nothings/stbIf you haven't come across stb before and you're interested in what is go ahead and check out that git repo.
I myself have never made serious use of his "libraries", but in many of his header files he makes use of #define in the source directly for settings etc.
I understand this is an odd example, and that's precisely why I'm saying I agree not using preprocessor settings in what ever form of project manager you have is a bad idea, but I'm not convinced that 100% of people out there don't have a good reason to make use of #define directly in their source. I feel there's bound to be the rare exception.
I'm dragging this a bit out of scope though I apologize. In SFML's case where it's simply SFML_STATIC in mind, I can't imagine a reason to define it in source and you're right I shouldn't have even mentioned it in my original post. When I say I believe there's a rare exception I mean with using #define in general not specifically for SFML.