That would be fine to build in BSP. This is not a black and white thing. There’s nuances, trade offs etc. so you can’t really give absolute and definite answers to in between cases like your portal example.
Building the above in brushes would lead to more random triangles and vertices than if you’d use meshes, and a higher drawcall count, however if you’d use modular meshes you’d have probably about the same drawcall count and the same if not more triangles/vertices. Then again the triangles don’t have too much of an impact anyhow. Plus that scene is so simple you wouldn’t hit performance issues anyway as well. So either works.
And to answer your question about separate meshes, you’d use modular meshes. Look at my Solus videos to see how I built up the levels using separate modular pieces. None of the pieces were made for where they are used. It is lego. You build universal pieces and use it in all kinds of creative ways.