It's all down to the order in which the set is constructed, combined with the bug you discovered with your other question. It appears that the literal is constructed in the opposite order to conversion from a list.
>>> {0, x, y}
set([0j, Decimal('0')])
>>> {y, x, 0}
set([0])