"Steven T. Hatton"
There seem to be two different general approaches to using bjam. One is to use "objects" such as /Main/ and /Library/. This is described here:
This is the Perforce Jam documentation. You should probably ignore that unless you want to use stock Perforce Jam.
The other approach is to use "rules" such as /exe/ and /lib/. This is described here:
They're both rules.
Am I correct in viewing these as separate approaches that I am free to choose between?
Not really. The former is the standard Perforce Jam idiom; if you use that you won't really be using Boost.Build at all... and I'm not positively certain that bjam still supports those rules.
Is one approach preferable to the other in terms of future compatability, or generally accepted practices?
HTH, -- Dave Abrahams Boost Consulting http://www.boost-consulting.com