I might be wrong, but this sure smells like a bug. In the simulator. have not tried on device. latest patches and SDK.
var valX = 0;
var strX;
var strY;
var strZ;
strZ = valX ? "ft" : "m";
strX = "STRING X: " + strZ;
strY = "STRING Y: " + valX ? "ft" : "m";
System.println("Correct: " + strX);
System.println("Wrong: " + strY);
========================
Correct: STRING X: m
Wrong: ft