Due to Google’s constantly updating maps API there have been a number of issues with this technique (see comments). Currently, when using the latest API version (3.9 at time of this update) you must ensure your marker icon has the property optimized: false.
This is a little issue that I spent a couple of hours trying to fix one afternoon. I was using the Google maps v3 api in a web app and encountered a little annoyance when testing on an iPhone 4. My custom markers were [of course] looking absolutely horrendous on the retina display, as they didn’t have their own asset.
In native iPhone apps one can specify their own retina images using the @2x image suffix. In CSS it’s easy to use media queries to load an asset for iPhone 4’s and then use -webkit-background-size to specify the scaled dimensions.