If not, where do you draw the line?
From there (since I am in the US) I would look at the decades of jurisprudence at the state level where most states have already adopted a Single Subject rule for their legislature's and have not seemed to gotten bogged down by it. it is not a new concept.
here is a pretty good overview from the MN legislature:
https://www.house.mn.gov/hrd/pubs/ss/sssubtitle.pdf
Then I could look to the Proposed law in Congress (https://www.congress.gov/bill/117th-congress/house-bill/872/...) which addresses your budget concern by adding "An appropriations bill shall not contain any general legislation or change of existing law provision, " meaning a budget is about a budget not about passing new laws or changing laws / regulations.
That is just a start of where one could go for this topic
If you can defund an agency to prevent the enforcement of a law, you can effectively use a budget bill to change an existing law provision, even without changing the law itself. This defeats the spirit of that statement above.
By all objective measure they would be better for public policy
So I think it's entirely possible that you could come up with a single subject rule that was enough of a net win I'd be in favour, but I suspect you'd want to look at how the existing ones have been gamed and work out which those cases want to have an official way to do them and which you want to reword things to make harder.
- Everything in the bill should be able to be summarized by a one-paragraph, three-sentence, no-semicolons abstract relating the purpose of the bill. None of the content of the bill should be surprising given that abstract — it should "follow from" the abstract.
- The abstract's sentences must all be logically connected, able to be diagrammed as a causal network. There can't be one sentence that introduces some completely independent purpose from the purpose discussed in the other two sentences. You can't say "We want to build a bridge. Also, we want to buy some tanks." — nothing connects those two concepts into a single coherent purpose. But you can say "We want to buy some tanks. We also want to build test ranges for those tanks." — the two concepts are connected and form a single coherent purpose.
> Take a budget bill.
No, don't take "a budget bill." The whole purpose of Congress as a social technology is to output a budget; every bill Congress evaluates is for the purpose of defining the budget. Congress should not be passing "a budget" through one bill, any more than a software company should be making a release every few months that entirely rewrites their whole product line from scratch with no code reuse.
Bills should represent discrete patches to the budget (implying also: to the executive departments and regulations funded by said budget), and should be debated the same way that e.g. Linux kernel patches are debated on LKML — including being rejected as "too big to be debated"!
And this perspective — of the whole of the legislative process being "about" the creation of a budget — should be burned into the process itself: no bill should be allowed to be introduced that "defunds" something without also excising the law that defined that thing; no law should be allowed to be introduced that "creates" something without also appropriately funding that thing. The legislature should be ACID — a bill should never leave the law in an inconsistent state (inconsistent between the set of laws, and the budget defined to "power" those laws.)
To be clear, that debate would not be line-item level — five fighter jets, three waste-treatment plants, twenty FDA auditors, etc. But it should be confined to a set of things that, as above, can be summarized coherently; and which can also be discussed and debated coherently, with the same set of experts needed to read and analyze the validity of every line-item involved in the bill.
Compare/contrast the court system: nobody involved would think that doing a single court case that evaluates 1. whether a company is committing accounting fraud; 2. whether its founder assaulted someone, and 3. whether another founder should get custody of their kids, would be a good idea. Those three questions each imply separate judges with different specialties, separate sets of expert witnesses, separate jury selection processes, and separate lawyers that each side would want to retain. (And, in fact, separate defendants!) And yet, in legislature, we see bills that do exactly this.