Rilus, I don't think it is so much an issue with gameplay (when your actually in the game) even though people say this, I think it is more an issue of the 'cludgyness' of the Steam interface and that you are FORCED to have to go through it to play a game. Now don't forget, I don't mind using Steam, I'm just trying to put myself in other people's shoes like Beaver for example, who has raised some good points.
I mean think about all of the components of Steam and how they work. Besides the buddy messenger utility (which is why I think they made Steam an external app in the first place) could most of the functionality of Steam be utilized as a common API to the main Half-Life game engine (and no I'm not a game developer but I've done some minor programming in the past). Again I'll refer to Neverwinter Nights as an example.
There is an external utility that comes with Neverwinter Nights that allows you to configure the game to the settings that you wish (i.e. graphics, sound, etc). Well what if there was an option in Steam to treat it the same way? What if those people who didn't like Steam could enable this option (i.e. click a checkbox) and would only have to run Steam once to configure it? So these people load up Steam, enter their username, password, and update preferences, then they close it. After that, these people can use whatever program (i.e. ASE, GameSpy Arcade, etc) they like to play any of Valves games. When the game launcher they use starts the appropriate game, the game engine checks the configuration files, grabs the authorization info, verifies the user, and then launches into the game. If the game needs an update, then the game just downloads the appropriate updates first and then continues on. Right now for people to use third party launchers (i.e. ASE) then they have to have Steam started first, otherwise the game launch doesn't work. I believe the only reason that Steam needs to be loaded is to verify the identity of the user. Why can't they just embed this into the game so that if authorization hasn't been checked yet, then it checks the users identity itself using the same verification API that Steam uses?
Really, as I said above, I think the primary reason Valve went this route is because they watched how gamers played with their friends. With Steam, I can go online, see where my friends are playing, chat with them, and then jump into the game that they are playing very easily. It's an integrated experience. However, in the process, they killed off any other third party from doing the same thing and I think that is where people are getting pissed off. For example, GameSpy Arcade pretty much does the same thing, yet now you can't join the game of your buddy without having Steam started first. Sure it is one little step but it is still annoying because people used to play this way before.
That's why Beaver is saying, if they could do it that way before, why not now? I agree. I think it would be possible but for them to do it, they would need to recode the way Steam works. The question is to they care enough about their customers to do this. There isn't just a few minor people complaining about Steam. I check out a few forums today. There are a lot of people who are pissed about it. Hopefully they will hear these peoples concerns and modify the program so that it makes both sides happy.