To addresses your first two paragraphs, too broad is for when a single Code Review question asks what should be multiple Code Review questions.
The broken code close reason isn't a single close reason. It's two. Which is easier to see if we keep the links in the close reason:
Questions containing broken codebroken code or asking for advice about code not yet writtencode not yet written are off-topic, as the code is not ready for review. After the question has been edited to contain working code, we will consider reopening it.
And if you follow the code not yet writtencode not yet written link you'll see it's the correct close reason for these questions. And so it's not that the close reason is being used too broadly, but that the close reason its self may be too broad.