Steven,
I suppose the importance of the tag field is its supporting tools like tag pills, filters and tags as tiddlers. Personally I have started to reduce my use of tags in favour of reserving them for adhoc or hierarchical relationships.
The list fields is a special case of using a field as a list of titles, where if you have drag-able lists, for example of items tagged with a specific tag you can set the order with drag and drop. Thus I leave it alone for that purpose.
Even the existence of a field can act like a tag once you become familiar with field filters note the has[fieldname] filter demands the field have a value, even one space character.
I am gradually starting to use custom fields, listops and tools rather than using too many tags. One use of using another field as a list of titles (not the tags or list fields) is for subjects or categories that differ from tags. Once a tag exists it is available to all tiddlers to tag them, if you use tags for subjects and categories it is not easy to tell the different functions of different tags unless you add this to the naming standard.
Which provides the partial equivalent of additional tags fields, which I am using for subjects and Categories, each additional field has its own list of candidate titles, rather than from all tags.
I am starting to see limitations with the tabs widget, that may have something to do with your students issue, however your code snipit I would describe as "Populate a field with a list of titles" could help here.
Thanks for sharing
I hope my perspective throws a little light on the subject.
Tony