Earlier quoted context omitted.
> he justifies it by pointing at difficulties with deploying libraries on Windows. Which is a fair point, but by going straight to header-only he skips the step where you can also just distribute a bunch of headers and .C files That part was justified by deploying libraries for Windows. Going for one file only was justified by this: "You don't need to zip or tar the files up, you don't have to remember to attach two…
For some reason, problems with DLL libraries are called as "DLL hell", not "SO hell". ;-) If your software needs library foo.so.x while other application needs library foo.so.y, just put both into /usr/lib. Problem solved.
The first versions of dynamic linking on UNIX basically required patching a.out files, before ELF was designed.
So of course the expressetion regarding compatibily issues with dynamic libraries came to be "DLL hell", there weren't .so to talk about.