The problem is not related to once-per-object functions. A modified example that never has any once-per-object functions still causes the same panic. Commenting out one line in a routine and recompiling (which causes the routine to be melted) causes the panic to occur. Freezing the system then prevents the problem from occurring, so it looks like this may be a case where incorrect melted code is generated.