Currently the tunables are stored on the DPathCompileInfo objects, which are runtime objects created by the schema compiler.
This is a mistake. Many tunables mostly can vary at runtime. If at runtime one gets tunables from the RuntimeData by mistake, one will not get the new values.
The ones that are needed at schema compile time (e.g., unqualifiedPathStepPolicy) should be passed and saved separately in the DPathCompileInfo objects and RuntimeData objects that need it.
It is possible that DaffodilTunables should not be serializable to prevent this problem.