In fact, yes you really have to watch for locals either way - it's entirely possible to do this (I have, since I wanted to package Arki in a module-like object):
(let (localfn localfn2
help* sig source-file*) nil
; protect 'def from bashing Anarki help docstrings
(= help* (table) sig (table) source-file* (table))
(def localfn ()
(prn "localfn!"))
(def localfn2 ()
(prn "!2nflacol"))
(def globalfn ()
(localfn) (localfn2)
(prn "haha only global!")))