I propose adopting the R6RS flags #!case-fold and #!no-case-fold to specify the case-sensitivity of files of Scheme code, even though most R5RS Schemes that support flags use #ci and #cs. In Chicken, at least, the latter two refer to the next datum only, which is one argument for using the unambiguous R6RS forms.
For case-sensitivity control in files read by the program, I suggest the method of PortsCowan, which is selective per-file rather than pervasive.
WG1 voted to go with R6RS.
What happens when a case-preserving module imports names from a case-folded module? Since Unicode case folding is downcasing, the obvious answer is that all such names are implicitly exported in lower case. Thus a case-preserving module must refer to them in lower case only, and an attempt to reference them in upper case will fail.
The reverse situation is more difficult. A case-preserving module may export foo, Foo, and FOO as three separate names; how can they be written in a case-folding module that imports them? The answer is that case-folding affects only reading and printing; small Scheme identifiers may contain both lowercase and uppercase letters, thanks to the presence of escaping mechanisms in identifier syntax. Consequently, the case-folding module can refer to these identifiers as foo (or FOO), |Foo|, and |FOO| respectively.