Please tell me why :before pseudo-element doesn't behave like a regular img in this case:

Left one is div with an img inside and img's width and height are equals 100% . Right one is div with :before and :before's width and height are also 100% , but effect is different!
(I know i can use a background-image workaround , but what is wrong with :pseudo when its content property is url() ?)
Fiddle: http://jsfiddle.net/Tp9JG/4/