This allows optimizing, for example: integer a = 1; integer b = a; llOwnerSay((string)b); which wasn't done before. This case is prone to happen with inlined functions, e.g. using the result of an inlined function as a parameter to another.