In order to use tracking with filters, the track by expression needs to be added after the filter.
Try this instead:
user.id as user.name for user in users | orderBy: 'name' track by user.id
The documentation for ngRepeat mentions this under the “Arguments” section, specifically:
Filters should be applied to the expression, before specifying a tracking expression.
and
For example: item in items | filter:searchText track by item.id is a pattern that might be used to apply a filter to items in conjunction with a tracking expression.