I don't really blame Samsung for too much of it. I'm sure their are ways they could have handled some things better but when you look at the bigger picture it kind of changes. The I9000 (original international galaxy s) received updates in a decent time frame. Their are leaked Samsung roms a handful of times a month. Each with newer build dates and are usually better performing than the last. This shows that they are working hard at improving the end user experience.
Also don't forget that they gave members of the cyanogen team free Galaxy S II's to get cyanogenmod up and running on. I think this gesture shows that they are serious about their product and the Android ecosystem.