I know what you mean too, but they had to code the entire DX8 version of the game in DX8 to make it DX8 compatible.
True, the game itself that you buy off the shelf is a "DX9" game, but when you start running it in DX8, you're not running the game at what you're supposed to. Its 'a little extra' that the coders do to make that group of people happy.
So HL2 IS a DX9 game, when being run in DX9. But it turns into a completely DX8 game when run in DX8. Just like Crysis is a DX10 game by default, but will turn into a DX9 game without any DX10 features for those that only have DX9 cards.