For example, we could specify a subset of Guile that is basicly R4RS
(but with ()==#f). Using the Guile package system, we could even
create top-level environments that are restricted to that subset. In
such dialects people could (and already do) write such things as
generic, performance-critical data structure code. It would be an
added bonus if programs written in such dialects could be specially
compiled into high-quality code.
Out of interest, is it strictly necessary to have () == #f in order to
support lisp? Couldn't the lisp->guile translator do the appropriate
thing? Perhaps compare result values to #f as well as () when the code
is translated? Not as efficient perhaps, but we are talking about code
which is soon to be regarded as "legacy" code.