The new XYZ and UV classes in Revit 2011 API under namespace Autodesk.Revit.DB are immutable. That’s to say, objects of these classes can’t be changed once it’s created. It’s similar with number in Python.

Then, please keep in mind that any method of XYZ/UV will not change its value, like for following methods:
   CrossProduct
   Add
   Subtract
   Negate
   Multiply
   Divide
They will all return a new XYZ object contains the calculation result instead of changing original value. UV is similar.