Потому что вы можете использовать будущее для других вещей. Вам дают будущее, когда вы отправляете (). Таким образом, вы можете в первую очередь использовать возвращенный объект Future для отслеживания состояния или преждевременной отмены. Во-вторых, если вы измените futureFactory () (я думаю, это называется чем-то другим, но у меня установлена Java 5, а не 6), вы можете добавить все виды дополнительных членов к будущему объекту.
Так что при выполнении take () вы правы в том, что в этом случае часть будущего (отслеживание / отмена состояния) не очень полезна. Но ОТО, почему бы не вернуть все будущее как есть, включая расширенную функциональность?