I agree with the small caveat that it sort of depends on the business/technical requirements surrounding your use of fragments. Fragments can be sort of flaky and difficult to work with so to peg a specific all-encompassing "best practice" would, in my opinion, be impossible. Using relative bindings in fragments is great (in fact it's what I'm doing on my current LC project), but it ends up becoming a bit limiting. It can make the fragment pretty tightly coupled to the "main" XDP form and whatever schema/XML is bound to it. Probably 9 times out of 10, that's not an issue, but the reasons for electing to use fragments can make it something you really need to think about.
My advice would be to avoid fragments unless you specifically need that functionality for a specific reason. It's easy to use fragments because they are cool and seem clean, but then can end up causing more headache than it's worth. On the other hand, using fragments as a method of compartmentalizing script objects is really really helpful. It helps you keep all your JavaScript inside script objects (instead of inside object events) and allows for reuse of scripts in different areas of the form(s). This saves development time, refactoring time, and disk space. I highly recommend looking into that scenario whenever possible.
Hope this helps.
Ryan D. Lunka
Cardinal Solutions Group
rlunka@cardinalsolutions.com