UPDATE: This awk script may be more what you are looking for:
awk -vRS='\r\n ' -vORS= 1 contacts.vcf
(original post)
This perl script works, though it is actually longer, even when sed is spaced out a bit; and it is quite obviously logically very similar to sed. Perhaps perl reads the file into memory faster(?), as it doesn't have the is it, or is it not 1st line? to deal with...
perl -e 'undef $/; $_=<>; s/\r\n //g; print' contacts.vcf
# | | | |
# ignore get substitute print
# newlines all as needed result
# | | | |
# sed -n '1h; 1!H; ${g; s/\r\n //g; p}' contacts.vcf
On the other hand: not to be facetious, but if you can't read a sed script easily and it works, just make it readable. I can't read any sed script like that! The one-liner syndrome is simply not suited to sed scripts which go beyond simple substitution... sed is more like a text assembly language than a high level scripting language... perl is rather cryptic too, but it tends to do big things with its terse syntax.
sed -n '
1h # if 1st line, copy the pattern space to the hold space
1!H # if NOT 1st line, append the pattern to the hold space
${ # if this is the last line
g # overwrite current pattern with accumulated patterns from hold space
s/\r\n //g # make required substitutions
p # print the final result.
}' contacts.vcf