Some examples of high-level decisions:
- which web framework?
- which database? which ORM? which transaction isolation level by default?
- will this game/UI be multiplayer?
- what's our testing discipline?
You can't loosely couple around questions like these most of the time, at last not without excessive abstraction.
For "how do I structure this reasonably isolated 0-1kLOC component", I agree, easy to fix later if needed.