Ah. The `package require tcllibc` loads the tcllibc shlib, and that runs a `package provide sha256c` internally, so the `require sha256c` short-circuits, i.e. becomes a nop.

Is your situation the ahead-of-time compilation of a package using sha256c ?
Or is it using critcl/sha256c in compile-at-runtime mode ?
From the description it looks it feels to be latter.
However it may simply be the reduction of your larger test case.

You could try to put a `package forget sha256c` just before the `package require sha256c`.
That should be a nop if neither sha256c nor tcllibc are loaded.

However, when a tcllibc was loaded before, then the forget should cancel the `provide sha256` tcllibc made,
forcing critcl into the execution of sha256c.tcl.