Yes, if you have multiple "pollen.rkt" files in your project, you need to take care to connect them in whatever way is sensible.
By default, Pollen searches up the directory tree for the first "pollen.rkt" it can find, and then applies that to the file. The effect is that the "pollen.rkt" in a certain directory automatically applies to the files to every subdirectory. However, once another "pollen.rkt" is put in a subdirectory, it supersedes the one in the parent directory. Of course, if you want to reuse the bindings of the parent "pollen.rkt", that's easy to do with `require` and `provide`:
#lang racket/base
(require "../pollen.rkt") ;; parent pollen.rkt
(provide (all-from-out "../pollen.rkt")) ;; or some subset of bindings
(module setup racket/base
(require (submod "../pollen.rkt" setup))
(provide (all-from-out (submod "../pollen.rkt" setup))))
Notice that the bindings from the `setup` submodule are propagated via another `setup` submodule. Here's code that won't trigger an error, but it won't work as expected:
#lang racket/base
(require "../pollen.rkt") ;; parent pollen.rkt
(provide (all-from-out "../pollen.rkt")) ;; or some subset of bindings
(require (submod "../pollen.rkt" setup))
(provide (all-from-out (submod "../pollen.rkt" setup)))
In this case, the `setup` bindings are moved into the main body of "pollen.rkt". Pollen doesn't look for them there, and hence won't find them.
Keep in mind that you also need to disable browser caching (Pollen has no control over this). If you don't, then you may still see cached results (because the browser isn't making a new request of the project server). For instance in Chrome, the developer menu has a "Disable cache" button: