I just bought GolfShot for my Iphone 4S and took it out yesterday. It worked well, and had the ability to track every swing to give me my personal yardages for each club. Around the 7th hole, it started to freeze up, and was pretty worthless the rest of the round. I could still input my scores, but the GPS screen was just black. From the sounds of it, that's not common, but it was frustrating to have it happen on my first outing.
The other feature that didn't work for me, was the ability to touch anywhere on the screen and get the yardage. Like, if I wanted to know the distance to a bunker, I thought I could just tap the bunker and it would show the yardage. But, it didn't matter where I tapped on the screen, nothing happened. I ended up buying the GolfScape app that works with it, and it provided yardage to some of the main hazards, but it wasn't super user friendly. It had me hold my phone up, camera pointing down the fairway, and tried to mark the hazards, but it didn't look great. I'm going to read the user guide, and hope that it does more than that.
As for accuracy, it was always withing 3-5 yards of what the laser showed, and what the course markers showed. That is close enough for me, and overall, I was really happy with it. I'm heading out again today, and will hopefully figure out how to use it better.