Reading throughout the comments and replies I’m sure you can come to understand how your vision of Bootstrap and the principle of Separation of Concerns is kinda wrong.
You keep defending your point of view, which is right and you should do so, but some things are technical, hence the right or wrong is pretty much decided by the thing itself. In the case of Bootstrap, which is a technical piece of CSS which is opinionated and yet semantically correct, the Separation of Concerns is respected.
The fact that you have to change a class name each time you want to change the layout of a single page is not an attribute to Bootstrap, it is a must-do of any web page, since you are talking about changing the single pages layouts you would have to scout through those 100 pages anyway, whether you use bootstrap or your personal CSS.
A smart solution which comes with backend rendered pages (PHP, NodeJS, Ruby, Python and others) would be to include headers and footers, separating the logic of the layout into smaller and more easely changable pieces.
To answer your question, you are not being too principled, you are just not getting the right meaning of the principle.
I’m happy to help you if you have any questions regarding more in-depth subjects, and I hope you don’t take my answer the wrong way because I really don’t mean to discourage you in pursuing your ideas and research and talk about your knowledge; that is a great thing you’ve done today, know it.