>I don't quite see why you are singling out [select]

It's the only object that has ever given me trouble in this way.  My guess is because almost all other objects that allow a list to modify their internal state will also output differently once that state has been modified.  If your [+ 1] object suddenly starts adding 100 to every input, it's pretty obvious what's gone wrong, and can be quickly fixed.  I think the reason why it's so sneaky with [sel] is that its main outlet only outputs a bang, and not a value.  There's never a "wrong" value being passed, unless you are connected to its last outlet (which usually you aren't).

Anyway, i can fully accept that this is not considered a bug, but rather a feature that keeps the [sel] object consistent with all others.  I'm not trying to stir up trouble, was just trying to point out the issue, cos it cost us a lot of time and effort to get to the bottom of a bug that was caused by that behaviour.  

I did have a good think about possible uses for the current behaviour, and i can think of one. 

[pack f f]
|
[sel ]

is quicker than 

[pack f f]
|
[== ]
|
[t b]

personally i would definitely use the second case, as it much more obviously shows the intent, but i guess the first way would also be legitimate. 

thanks everyone for the discussion.  happy to consider this one closed now.