Wolfgang,
Can you expand on the following statements from your reply?
You can run Hans example with MkIV and the differences should be even bigger because the check for [] is slower here while in LMTX it's a engine feature. The main difference in LMTX is a extra expansion for \setup compared to \directsetup.
there is no difference between \setup and \directsetup
Are you saying:
1. When [] are used with \setup, expansion of the contents is done differently than when {} are used.
2. There is no significant processing time difference between \setup and \directsetup.
3. There is additional expansion performed for \setup compared to \directsetup.
4. Under LMTX, because {} and [] handling overhead is so similar, the most visible processing time difference to users is from the difference in expansion between \setup and \directsetup.
I think you are saying that 2, 3, and 4 are true, but that 1 is not true.
If that is the case, can you provide an example that demonstrates the difference in expansion between \setup and \directsetup?
Also, as far as expansion, is \fastsetup like \setup or like \directsetup?
My simple testing shows no difference between setup, directsetup, and fastsetup for namespace set and reset. Is it your understanding that they all behave the same?