It's actually due to the white space being injected by the .append()
method. You end up with this:
<body style="">
<div></div>
<div></div>...
If you use .after()
and insert the divs like this:
for (var i = 0; i < 20; i++){
$("div:first").after($("div:first").clone());
}
you get no extra white space before the clones. jsFiddle example