Пошел [почитал](https://docs.angularjs.org/api/ng/service/$compile):
> Any changes to parentModel will be reflected in localModel and any changes in localModel will reflect in parentModel. If the parent scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You can avoid this behavior using =? or =?attr in order to flag the property as optional.

В нашем случае никаких изменений в options внутри директивы не предвидится и опциональность является излишней.