Actually, the elaborator is the one reporting the unassigned placeholders. The 'exact' tactic just makes the request. To implement this feature we had to extend the elaboration interface expected by the tactic framework.
See new node.inj4 theorem, we need the extra power to be able to avoid type information at exact (assume e₁ e₂, e₁)