How about first sorting the tuple pairs internally. I believe this technique would pass through your list just twice since distinct is advertised as O(n) complexity:
val ts = List((0,2),(0,5),(2,0),(2,5),(3,4),(4,3),(5,0),(5,2))
ts.map{ case (x,y) if x < y => (y,x) case (x,y) => (x,y) }.distinct