Заказчик сам, как правило, не способен составить грамотное ТЗ. ТЗ должен составлять технически грамотный специалист, полностью учитывая все пожелания заказчика и возможности разработчика. Если ТЗ составлено правильно(и добросовестно выполняется), то впоследствии никаких вопросов не возникнет. А вот по поводу отдельной платы за доработки: клиент не всегда точно может представить себе, что он хочет, потому плату необходимо требовать только за реально крупные переделки. Если, конечно, исполнитель хочет по итогу остаться в индустрии.