The main problem here is that OpenID was never a first-class citizen. If I go to a site that does support OpenID for login, which is a rarity, they only give the most basic of abilities to me. Whereas if I create a username in their system, suddenly I can create a profile for myself, set some preferences, etc. (Livejournal and Blogger being two notable ones.)
I really like OpenID, but my feeling is that companies never really wanted it in the first place. Sure the person running the site probably thought it was a great idea, but I'm sure the suits looked at it and thought "gee, I'm not going to be able to force my users to give me their full address and credit card before letting them do anything on my site, if they're logged in with this openid thing.." So instead, they use it as a teaser, and up-sell you on a real login. Of course, users aren't stupid, and if you're going to write comments on a blog and you think there's a hope in hell that you'll ever want to use the 'full' features of the site, you'll create a login instead.
What could save companies from this problem would be if they'd allow you to tie an OpenID to your login, and use that to login instead. (See stackoverflow.) But instead, a lot of sites prefer to use it as a way to avoid requiring a captcha for "anonymous" comments.
Also, it'd help if some of the big players weren't such dicks, and allowed you to login with an external OpenID rather than only exporting an OpenID.. It has to be a two-way street.