I often write things the way you do. I find that it's easier to test if I can get at as many procedures as possible from the REPL (but maybe I'm not very Schemey either). I also find it harder to read procedures declared in let blocks sometimes because they make the flow of control jump around on the page - first you have to read the body of the let block, which is lower on the screen, and then jump back up to the functions that were defined at the top of the block.
However, I think that inner functions make a lot of sense if you think of each top-level procedure like its own little module. If you think like that, then writing inner procedures means grouping related code together and making the overall structure more clear.
Noah