There are some routines in Maple's library which, when called the first time, redefine themselves.
One plausible explanation for this is that the new versions are session dependent (external calls, say) while also more efficient to call (repeatedly).
For example, consider StringTools:-Join which seems typical of that package. First, consider it before it's been called at all.
StringTools:-Join := proc(...