"Когда кэш получает запрос ..."
Кэш не получает HTTP-запрос.Именно пользовательский агент (браузер) проверяет кэш, чтобы увидеть, есть ли какая-либо запись в кэше, соответствующая HTTP-запросу.Сам кеш - это просто набор данных, хранящихся на диске / в памяти.
"Отправляет ли кеш полученный запрос ... ИЛИ генерирует ли кеш новый запрос ..."
Кэшне отправляет HTTP-запрос.Отправка запроса является задачей агента пользователя (браузера).
Таким образом, кеш - это просто байты данных, он не знает, когда и куда отправляется HTTP-запрос.Вся логика проверки кэша (связанные с кэшем HTTP-заголовки) реализована агентом пользователя.