There is definitely something fishy going on here.
Check out my modified example in both Chrome and Safari on a Retina MBP:
Also, make sure you do not have an external monitor hooked up, so JUST the laptop screen.
http://jsfiddle.net/VAXrL/202/
The expected case is definitely what you see in Chrome but Safari has issues, allow me to explain.
For those unfamiliar, we are dealing with a retina display, so there are 2 values we will use, screen pixels, which refers to the actual physical pixels on the screen, and CSS pixels, which refers to what the browser CSS and DOM interpret as pixels. On a normal laptop/computer, this is a 1 to 1 relationship. 1 CSS pixel === 1 screen pixel. On a retina display, it's 2 screen pixels used for every CSS pixel, except in a few special contexts (canvas tags, images and background images).
We do this by making the canvas/image/background image TWICE as big in dimensions, then use the appropriate CSS styles of width/height or background-size to resize the image down. The browser is then smart enough to actually render ALL pixels at their native screen pixel size.
Referring to the example:
The default image is 64x64px, which means on a retina display if you left it as it is, the browser will automatically use 128x128 screen pixels to render. This will cause a certain level of image rescaling, which when left up to the browser, kinda sucks (generally).
To render it pixel perfectly, it's going to need to use CSS to resize the image or canvas down to 32x32 css pixels, which in turn would use the exact 64x64 screen pixels, and no image resizing is necessary.
In the above example, the red borders refer to images, and the blue borders refer to canvases.
The first row of image and canvas are just rendered as is, no CSS is used to resize them, so they are pixel doubled on a retina display, but will look perfectly normal on a non-retina display.
The bottom row however, have been resized using CSS, otherwise they are identical. If you look closely in chrome on a retina display, there should be no blurring (or image scaling) artifacts. This is the ideal way to work with retina imagery.
The issue though, is that in Safari it doesn't seem to work like that. The image is perfect, however the canvas is blurry, which leads me to believe there is some type of GPU bug in effect here.
If you want to get really weird. Hook up an external display to your computer, put the Safari window with the example on the external display, refresh the page, then drag it over to the retina display, and it performs the rescaling of the canvas tag perfectly (like in chrome).
I'll do some more digging tonight to see if there's perhaps a CSS way of undoing this weird bug.