This is also the result of an assimilation rule.
Huis ends with the voiceless alveolar fricative [s], and vuil starts with the voiced labiodental fricative [v].
The [v] of vuil now adapts to the preceding sound and changes only its feature VOICED. If [v] becomes voiceless, we’re left with an [f]. This explains why the word huisvuil is pronounced [huisfuil].