Is it ever important to know that each of the solutions returned by solve are unique? This is a related but separate issue, which is more tied to the assumptions system. Consider for instance `solve(x**2 - a**2, x)`. The solutions are `[a, -a]`. These are distinct solutions, unless `a = 0`. In that case, the solution is not entirely wrong if you count multiplicity. 

You should think about in the cases where solve is used if two solutions being the same will result in a mathematically correct result or not. For instance, if we constructed `Interval(-a, 0).union(Interval(0, a))`, it would technically still be correct if `a = -a`. But if something fundamentally depended on the cardinality of the solution set, then it wouldn't.