Я хочу, чтобы ты понял, что разница между format("{}", as_http_time(tp)) и format("{as_http_time}", tp) такая же, как между format("{}", d2s(1488, "%.3")) и format("%.3d", 1488), она примерно весь смысл строки формата
В format спецификация не определяет тип, она наоборот в контексте конкретного типа парсится, format("{0:f} {0:g} {0:e}", 3.14). Это удобно, под свой тип можно определить любую спецификацию. А определение типа через спецификацию как в printf это как раз не расширяемая штука.