You will know the performance when you test it. It should take at most two hours to jam in test data for both bullet points you have put together with dummy data. To be honest, your first bullet point dummy data will take a lot less time to generate than your second bullet. How you would do that would be thru a varied set of about 5000 rows then repeat them similar to that link above. That way it keeps your indexes honest and close to real life experiences.
The bullet points pros and cons that immediately come to mind are this:
Your first bullet point will benefit greatly from a Covering Index (or several). That means your Read queries will be screaming fast by comparison. You benefit from index page "covered" information without the need to traverse from the index to data pages. Note that your covering index is viable across potentially all of your binary and integral columns as you call them because they are thin.
Depending on your queries, and only you would know, you would need to investigate Composite Indexes a.k.a. Multi-Column Indexes too. Reason being, speed on retrieval.
The difference between Covering and Composite is, though both are on multiple columns, the Covering index would not need a trip to the data page for retrieval of info on reads.
On the con side, any of your regular
changes to the schema will need to occur with alter table
statements and index regeneration. On a 10^6 row table that is relatively minor. On a 10^9 different story.
Thus ends commentary on bullet one.
Your second bullet point (association / junction / intersect tables) will benefit from a more sane developer's approach when it comes time for changes. But it will suffer in performance when compared to covering or composite index strategies used in your first bullet. I would estimate that the order of retrieval will be magnitudes slower. Just a guess, worth a bet, not hard to test.
In either case, only you will know when you have the right balance of index choices that are never a freebie. With speed on retrieval comes the price of slowness on insert/update.