Just to shed some light on what happens here:
+ is arithmetic addition, which means adding numbers, or when used between a string and a string, text concatenation. & always means text concatenation eg. if you use 100 & "%" you get 100%. 100 + "%" won't work because it can't perform arithmetic addition.
The type checker allows RedCastle.Value('HPcurrent') + "/" because private variables can hold anything so the expression could be valid - it can't tell in the expression editor, it doesn't know the value of 'HPcurrent' yet.
So it ends up trying to do 100 + "/" at runtime which is invalid, so Construct does nothing (the left operand is unaffected by the addition). Hence 100 + "/" evaluates to 100. Then you add another 100 to it, which gives 200.
Tip: run a debug, and in this situation a message is added to the log.