"Nothing" uses the same memory slot no matter how many times it's used, but "Left ()" will more than likely create a new object every time, or at the very least one for each module where it's used.
Eq and Ord instances get slightly slower because they have to compare () with () every time they receive a pair of Lefts.
Where you would pass "x" into the "maybe" deconstructor function, now you would have to pass "const x" to "either", which again uses more memory and (more importantly) more cognitive space.
We have the problem other people have mentioned where FlexibleInstances or TypeFamilies/GADTs have to be used to define instances for Either ().
However, the biggest problem is that Maybe is not actually isomorphic to Either () in a lazy language like Haskell. Maybe has
* Nothing
* Just x
However, Either () has
* Left ()
* Right x
* Left undefined
And that final value causes infinite problems, particularly when you pass it to other functions which handle strictness on the Left argument differently. Is the Eq () instance strict or lazy in its arguments? I honestly would not be able to tell you without firing up an instance of GHCi. I've seen different libraries which define singleton objects define it in different ways.