It should be a point of procedure that all bills do exactly one thing. Small and easily reviewable commits, please; software engineers learned this long ago.
Page-by-page of a single bill doesn't work, though; see also attempts at a "line-item veto". For the most obvious failure mode, consider a bill that replaces one tax with another and a veto on the removal of the old tax. Or consider a bill that adds a tax and a service funded by that tax, and a veto on the service but not the tax.
Or, maybe each congressperson casts a tri-state vote on each line item (bill must contain this, bill must not contain this, or no opinion). Congress then runs a SAT solver to determine if there is any combination of line items that pass the criteria given by a majority of congresspeople. If none exist, the bill fails. If multiple candidate bills succeed, each congressperson is allowed to nominate one candidate bill for consideration, and the legislative body then votes on the best candidate via approval voting.
Page-by-page of a single bill doesn't work, though; see also attempts at a "line-item veto". For the most obvious failure mode, consider a bill that replaces one tax with another and a veto on the removal of the old tax. Or consider a bill that adds a tax and a service funded by that tax, and a veto on the service but not the tax.