For someone to enjoy the benefits of the BTreeManager to map between an external, flat path and an internally-branching tree, he must use jackrabbit-specific classes to achieve it. This is is undesirable. It would be better if, through configuration, he could specify that his paths are likely flat and Jackrabbit would return implementations of the Node interface that would interact with the BTreeManager internally so that the application code could remain agnostic of the internal challenges of dealing with large numbers of child nodes.
I've attached NodeWrapper.java which is a preliminary attempt at adapting the Node interface to the BTreeManager. In practice, however, I found that if the returned, wrapped Nodes were interrogated for their path, they would return the internal, rather than external, paths. Without an approach to address this problem, I abandoned testing.
I would not have a problem with an assumption that the configuration option must be chosen at repository creation time and must not be changed thereafter.