The problem isn't its imperfection (though it is wildly imperfect). The problem is that its political toxicity prevents action on other things that would be far more effective. For example, it would be politically difficult to oppose mandatory e-verify. However, it's not difficult to oppose it if it's tied to building a wall.
I'm not certain E-verify is actually better. The main issue is that no one wants to enforce it.