OpenFeint and Scoreloop currently don't do anything resembling matchmaking (connecting two devices directly). They just route information lazily through their own servers.
If you want to make a real-time internet based game that can run on the iPhone, check out RakNet. It is a bit of a beast, but you soon realize that everything included in it is required to make it happen. These including matchmaking servers, and the very-important NAT punchthrough servers.
If you don't know anything about NAT, then you have a fun time ahead of you ;). Nearly all iPhones will be running behind NAT's, so connecting two of them is often non-trivial (ie, you need to be running a dedicated server just to make the connection happen).
I looked at GameKit, but it seemed too limited to do what I wanted to do. I I have a game currently working with real-time multiplayer over wifi using RakNet, so it can be done (there are others on the AppStore that already use RakNet for internet play).