I had a similar problem with the same Duplicate error (I'm expecting that the root cause might be the same), however, I was encountering this when trying to add additional objects to my model array whereby the object needed a certain template. It seems (logical) that Javascript added this by Reference to my model and therefore, it triggered the duplicate error.
The way I got around this was by actuallt creating a new (empty) object in my factory that I extended with the template using angular.extend. This way, event though the resulting object is identical, it's no longer by reference and it DID allow me to add these 'duplicate' objects (well.. objects that looked the same) to my model.
I looked at your Fiddle and though I could apply the same principle, however, because of the primitive string (item), this didn't seem possible. I actually did find a way to get the correct behaviour, however, it involves extending your item string into an (new) object so this might not be a correct solution. Does seem to do the job though :-)
http://jsfiddle.net/MikeOne/sCsEG/