文字列演算はその項がリテラルでも定数扱いされないようです。DATA文は定数しか指定できないので、文字列演算はエラーになってしまいますね(数値演算は項が定数なら定数扱いなので、文字列とは違いますね)。これは内部的なデータ取り扱いの都合だと思ってます(なお、プチコン4で変わったような記憶が無きにしもあらずなのですが、実際はどうでしたっけ?)。
VAL関数は、計算する関数ではなく、「数値だけを表す文字列」を数値に変換するだけなので、数値と読み取れない部分が含まれると0を返すようです。
具体例は以下のようですね
"13" → 13
"2.5" → 2.5
"1.5e-1" → 0.15
"&H1F" → 31
"&B10" → 2
"1+2" → 0
"あいう" → 0
"1F" → 0
"&B10.1" → 0
(注: ○.○e△という表記がありますが、これは指数を使用した表記で、○.○×10^△のことです。詳しくは「指数表記」などと調べてみるとよいでしょう。)