Python 'sets' are ideal for operations on unordered point cloud data, but Blender's vector class does not support hashing. This means that you either have to use lists (which may be slower or less convenient) or write an entirely new vector class instead of reusing the existing one.

To be hashable, the object must be immutable. That seems like a stiff requirement for something used in calculations.

From the Python docs:
If a class defines mutable objects and implements a __cmp__() or __eq__() method, it should not implement __hash__(), since hashable collection implementations require that a object’s hash value is immutable (if the object’s hash value changes, it will be in the wrong hash bucket).