Right, figured it must execute since that's the only place I found where it reads onboot.lst in the boot process (using corebook as reference).
Color me surprised when I found the actual TCE loading is done by a python script! /usr/bin/tce-bootload to be exact, getting passed the onboot.lst contents.
And sure enough, it doesn't check copy2fs.lst at all:
for p in tczout:
pid = os.fork()
if pid == 0:
#This is the child process.
if showapps:
print(p[:-4] + ' ', end="")
print('\033[1;33m', end="")
os.mkdir(root + '/tmp/tcloop/' + p[:-4])
system_command('sudo /usr/bin/mount -t squashfs -o loop ' + sys.argv[1] + '/optional/' + p + ' ' + root + '/tmp/tcloop/' + p[:-4], p[:-4])
#Child process exits
sys.exit(0)
I assume this is something that can only be fixed by remastering, or using "base" bootcode and manually loading onboot TCEs (will try that first).