‘atexit’ functions are run at ‘exit’. ‘exit’ can be run from signal handlers (*). Since the hook runs Scheme code, it could do a lot of AC-unsafe things, resulting in problems.
(*) glibc documentation says ‘exit’ is AC-unsafe, but this is unsupported by POSIX AFAICT. OTOH the same applies to even ‘malloc’, so likely I’m looking in the wrong places.
Best regards,
Maxime Devos