Слово рюкзак - особое, словарное. Оно попало в русский язык из немецкого, и этим обстоятельством предопределено его произношение и написание. Попади оно к нам из нидерландского, писаться бы ему гораздо ближе к русскому произношению, а к украинскому ещё ближе - rugzak.
Смотрим в словари:
В исходном языке это слово состоит из двух частей: Ruck (нем.) или rug (нид.) - спина и Sack (нем.) или zak (нид.) - сумка, мешок. В русский данная композиция попала уже в готовом виде, как слитный неразложимый "кирпичик".
Так почему же слово, попавшее из одного языка, произносится гораздо ближе к нормам другого? Это чистой воды совпадение, в котором виноваты орфоэпические нормы русского языка. Звонкий согласный [з] влияет на глухой согл. [к], превращая его в тоже звонкий [г], получается [р'угзáк]. Такое явление называется регрессивной ассимиляцией, поскольку последующий звук влияет на предыдущий.
Почему [з] оказался столь могущественным и потянул за собой [к] вместо того, чтобы подвергнуться прогрессивной ассимиляции и потерять звонкость, превратившись в [c]? Почему мы не говорим "[р'уксáк]"? Можно сказать, что на всё воля Божья, и закрыть тему, а можно высказать логичное предположение, что второй слог, которому и принадлежит звук [з], ударный, поэтому требует гораздо больше энергии на произнесение, поэтому он подстраивает речевой аппарат именно под себя, а не под нужды слога с безударным гласным.