Изначально ТЗ - это приложение к контракту на создание (доработку) системы. В нём фиксируются требования высокого уровня, задающего основные функции системы и рамки проекта (то, что сейчас принято называть бизнес-требованиями). Заказчик при приёмке системы руководствуется тем, что написано в ТЗ (для этого на основе ТЗ "по классике" делается программа и методика испытаний, ПМИ).
Use Cases обычно используют для описания требований более низкого уровня - пользовательского. Если включить их в ТЗ, то разработчик теряет всю гибкость в выборе методов реализации бизнес-требований.
Формат User Stories вообще не предполагает фиксации на ранних этапах. Главная сила User Stories - в обсуждении с заказчиком и внутри команды непосредственно во время реализации. Это чистая Agile-практика, использовать stories без Agile бессмысленно.
Сейчас, конечно, всё перемешалось, но смысл ТЗ как документа, задающего рамки системы в контракте, в целом сохраняется. Если у вас (как у исполнителя) возникают идеи включить в ТЗ Use Cases или User Stories, значит вы наверняка не договорились с заказчиком "на берегу" о том, что же он хочет получить. И придётся договориваться уже вдали от берега.
1. Юзкейс - это описание юзкейс диаграммы, которая живет в юмл уже тыщу лет и является привычной для разработчиков. Может описывать любой уровень абстракции. Почему вы выделяете его из ТЗ?
2. Техническое задание - это спецификация требований. Это именно то, КАК надо решить проблему. Иначе же вам ее решат из г и палок, а заплатите вы сумму по договору.
3. С чего по-вашему разработчик не должен иметь гибкости в реализации БИЗНЕС требований.
4. Техническое задание - это локальная формулировка. Это спейификация и она содержит подробные Ф и неФ требования. Зачем вы мешаете русское с нерусским и пытаетесь это сравнить?