Хорошее замечание. Почитал - действительно glibcшный линкер патчит .got.plt только для glibcшных функций, вроде memset и т.д. Это, в целом, разумно, т.к. сам линкер - часть glibc. Для юзерового кода это, очевидно, не работает.
Для юзерового кода нашел только фичу работающую на уровне DSOs в glibc (называется dt_hwcap). Если правильно понял, работает так, что дин. линкер приоретизирует загрузку DSOs из определенных директорий, соответствующих именам поддерживаемых проц. расширений (например, /usr/lib/sse2). Кажется, появилось только в glibc-2.26 и работает пока только для x86 (не для x86_64).
Вообще вся идея патча линкером кажется не особо хорошей, так как не работает со стат. линковкой, требует принудительного эскпорта функций (чтоб вызовы проходили plt-индирекцию), что все само приносит оверхэд.