I was reading the documentation tiddler for SetWidget just now than the last posts appeared in forum and I’ve got confused by the usage of select as well.
Before getting to the examples part, it looks like select is just an additional constraint when filter exists. But in this particular example it does not. Is this why you said it is not necessary here?
As for explicitly using select="0" being a good practice, is this more for achieving mental consistency with the way filters generally work (as in only the first item is usually returned)?
Correct, however I wanted to highlight it since that may have been a simplified example derived from a more complex real world use case where it might be relevant.
When using a filter with the set widget to assign a variable, it is a common pitfall to not realize that the widget is designed for working with title lists and will always return a title list from a filter evaluation even if that list is one item long. So your variable might be "[[Hello World]]" rather than Hello World unless you specify that you want to return a single value.
So the best practice is to always use select=“0” when intending to return a single item from the evaluation of a filter provided to the filter attribute to the set widget.
I am away from my desk, hopefully this is coherent enough to be helpful.