We are also using both options in Apache Sling, here's an example of each:
Pax Exam tests in a separate bundle:
https://svn.apache.org/repos/asf/sling/trunk/installer/it
Pax Exam tests in the same bundle, using a bundle.file.name
system property, set in the POM, to allow the tests to find the bundle that was just built:
https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/core - see the BindingsValuesProvidersByContextIT.java
class.
I agree that both options are valid depending on how "big" the tests are and whether they test a single bundle or a combination of bundles.
Naming the tests classes with an IT suffix causes them to be executed by the failsafe plugin in the integration-tests phases, instead of surefire in the test phase.