Thank you for your continued effort. Still, it looks like my point did not make it through.
What I implicitly noted is that:
* version sorting is more complex - even than dictionary sorting[1]
* package require has two possible preferences, namely latest and stable
It is not feasible to re-implement this decision making algorithm ... this could better be another subcommand (like package version) or a switch (like package require -dryrun).
[1]
set versions {1.0 2.2 2.11 2.12a2 2.12b1 2.12.0 2.13a1 3.42}
lsort $versions
lsort -dictionary $versions
lsort -command {package vcompare} $versions
# other than the code above, the following lines won't actually work
package require foo ;# loads and returns 3.42
package require foo 2 ;# loads and returns 2.12.0, but if
package prefer latest
package require foo 2 ;# then loads and returns 2.13a1