В вашем случае тип 'entity' избыточен, т.к. 'choices' вы задаете ручками. Ограничение результатов в таком случае нужно делать через опцию 'query_builder'.
Интересное решение с лейблом, но для более сложной кастомизации - придется все-таки переопределять виджет.
Антон Натаров: Не то чтобы я за вызов функций таким образом. Приведенный пример показывает, что не обязательно делать параметра необязательным. В любом случае вполне себе валидное использование. Ясно, что вторым параметром передаем null и никакой ошибки синтаксиса тут нет.