I don't think anyone can safely say that parts of the system they designed doesn't suck in some way. Even the greatest of systems aren't perfection. They're just "better than the last system you worked on" and that's what is good about mistakes. You learn from them and make something better next time.
Even if you produce this Platonically perfect system, it will begin to suck as soon as you release it. As data grows and changes, there will start to be parts of the system that don’t work right, or that don’t work fast enough. Users will find ways to make your system suck in ways you hadn’t even anticipated.