Почему в Linux, в отличие от Windows, надо рекомпилировать драйвер после обновления ядра?
В Linux это не всегда нужно, и это не проблема, а то что автоматически пересобирается прослойка взаимодействия проприетарной графики ( к примеру) при обновлении ядра - так это потому что разработчикам было проще и надежнее сделать, чем проверять что и где изменилось от версии к версии.
В Windows существенные изменения реже происходят, у вас же не работает графический драйвер от Windows XP на Windows 8, правда? Вот и тут, обновились с 4.0 до 4.1 - будьте добры пересоберите модуль, новая мажорная версия ведь.
Потому что есть портативные программы, которые все зависимости и велосипеды тащат с собой, а есть непортативные, которые предполагают, что все нужные велосипеды уже в системе. 
При изменениях в системе непортативные требуют пересборки ( или установки старых версий системных библиотек, что обычно адЪ).  
Портативные не требуют.
Как под линукс, так и под винду можно создавать оба типа приложений или тех же драйверов. 
Из-за общей открытости платформы и удобных систем обновления всего под линукс более распространёны непортативные, они легче (как в распространение, так и в работе) и без велосипедов.
Под винду из-за закрытости и отсутствия удобных систем обновления сторонних приложений при обновление системы — частично  портативные. 
Но ещё раз, оба типа программ можно делать под обе системы, при желании/необходимости.
Авторы проприетарных драйверов следуют тенденциям системы —  делают  частично портативные драйвера под винду и непортативные под линукс.