Ни разу в жизни не переписывал код с нуля. Откуда у людей берется эта странная идея?
Всегда можно отрефакторить, поменять интерфейсы объектов и подправить структуру приложения. И это всегда будет и быстрее и надежнее, т.к. в любой момент работы над кодом - у нас "уровень готовности" кода не снижается.
На эту тему могу посоветовать статью одного из основателей stackoverflow.com Джоэля Спольски:
http://www.joelonsoftware.com/articl...000000069.html
Никогда. Никогда не переписывайте код с нуля.
А про перфекционизм - у меня такая же фишка. Но знаете что? Это обычная лень. Лень потом разбираться с "плохим" кодом. И с этой ленью надо бороться. И с кодом в любом случае прийдется разбираться.