I guess this is a coreText thing. When composing the same text with hard returns and soft returns (shift + enter) in TextEdit, there is no difference between soft and hard returns.
I guess you'll need to script it and change the the bottom spacing for text-runs with soft returns.