What happens if some C APIs are called via FFI and the C code creates a file internally? It will use the process umask, ignoring any overrides by Scheme, unless Scheme changes the process umask upon entry to every FFI call (too expensive). FFI procedure definitions could take an "inherit Schme umask" flag. Too fancy?