Как мне написать следующее:
typedef void (^T)(void); T f() { return ^{}; }
без typedef?
void (^f())(void) { return ^{}; }
Вам лучше оставить typedef, так как тип возвращаемых данных непросто понять в этой форме.