With every add or delete operation, each overlay node will get eight additional lines, containing different amounts of whitespace: four between <overlay> and <link> one between <link> and http://... one between http://... and </link> one between <description> and the description text one between the description text and </description> This makes the file hard to read.
Indeed, sucks big time :-)
This is fixed now as a consequence of migrating Layman to ElementTree. You can emerge app-portage/layman-9999 (Layman live ebuild) to check it out. http://layman.git.sourceforge.net/git/gitweb.cgi?p=layman/layman;a=commitdiff;h=507e8f4451e53de613228761b9bbf1a5d82f25cb