Your idea of government funding capital projects on a pay-as-you-go basis sounds attractive. At the state level this would be realistic.
However, all municipalities aren't capable of this. The cost of a multi-million-dollar water or wastewater treatment plant is beyond the short term capability of a small (10,000) municipality to deal with on a cash basis without violent increases in tax rates. Building a capital reserve fund is not always realistic - and assumes returns at or more than inflation, which isn't always possible.
Projects which generate revenue streams should indeed be privatized. Projects consistent with the jurisdiction's tax base should be pay-as-you-go. Flexibility, though, is paramount.