Aqui você vai:
$ awk -F+ '{sum+=$2;printf("%s+%d\n",$1,sum-$2);}' blah.txt
aa+0
bb+2
cc+6
dd+16
Edit1: aqui é uma maneira um pouco mais simples, graças ao Sukminder
$ awk -F+ '{printf("%s+%d\n",$1,sum);sum+=$2}' blah.txt
Edit2: E um pouco mais conciso, graças a Bernhard:
$ awk -F+ '{print $1,sum;sum+=$2}' OFS="+" blah.txt
Edit3: mas o primeiro não exibe 0 na primeira linha, então aqui está uma versão corrigida e um pouco compacta que mostra a maneira mais curta de responder à pergunta de Tom (até que algum novo comentário sugira um melhor):
$ awk -F+ '{print$1,s+0;s+=$2}' OFS=+ blah.txt