「あげる」「やる」は、以下のような意味・用法があります。他にも多様な意味・用法がありますが、質問内容に関係のあるものだけ列挙します。(参考:広辞苑)
----------------------
■あげる
(a)(本来は「与える」「やる」の相手を敬った言い方)
物を渡す場合の丁寧表現。「君にあげよう」
(b)動詞の連用形+て(で)+「あげる」の形で、
その動作を他にしてやる意の丁寧表現。
「教えてあげる」「本を読んであげる」
■やる
(a)(身分が同等以下の者に)与える。
「これを君にやろう」「猿に餌をやる」
(b)動詞の連用形+て(で)+「やる」の形で、
同等以下の者のために労を執り、恩恵を与える意を表す。
「読んでやろう」
(c)自ら物事を行う。する。
「勉強をやる」「ちょっと一杯やろう」「やるだけのことはやった」
----------------------
本来「あげる」は(a)のように相手を敬った謙譲語でしたが、現代では敬意がほとんど薄れて、むしろ「やる」の(a)のように、たんなる丁寧語として用いられています。「犬に餌をあげる」「花に水をあげる」「わが子にお小遣いをあげる」等の、しばしば槍玉に上げられる用法です。
この結果、「~てあげる」が、「やる」の(b)の「同等以下の者のために労を執り、恩恵を与える意」の印象を与え、押し付けがましさ・不快感を覚えさせるのだと思います。
なお、「やってあげる」は「やってやる」と同意ですが、最初の「やって」は、「やる」の(c)の用法でしょう(「見てみる」と同類?)。
ぞんざいな言葉が重なるので、二重に不快感を覚えるのではないでしょうか。
同等以下の相手にはせめて「してあげる」、目上の相手には「してさしあげる」のほうがよいでしょう。
若い女の子がオジサンに向かって「○○して あ・げ・る(はあと)」などと言うのは、例外的に許される範囲です。(笑)
お礼
言葉は難しいですね。少しの言い方やとらえ方で意味がちがってきたり、本来の意味からかけ離れて行ったりと、、、。 ご丁寧に解説ありがとうございました。