Quindi se questo /^$/ indica l'operazione su un "a capo", dove ne trova due, uno probabilmente lo lascia
Impossibile. Quel codice non controlla quanti a capo ci sono, li toglie mano mano che li trova, neanche si accorge se sono due.

pi probabile che alcuni "a capo" non siano standard, tra linefeed, returcarriage, pagefeed, verticaltab, ecc... probabilmente in quelle righe c' qualcosa che non corrisponde al paragrafo vuoto ma che viene visto come "stacco".