Почему же? Разве не в месте вызова? Если тип не реализует трейт, в месте передачи на это и отругает. Прямо как в твоём примере. Или ты имеешь в виду что-то другое?
Не, этот момент не раскуриваю как раз. Нету его. Меня ведь интересует семантика не (), а Point2d<()>. Пусть () не реализует, а вот Point2d<()> может и реализовать.