A good article at Strong Towns highlights a structural problem with how the US does Federal infrastructure funding:
We can get money from Washington to build new infrastructure, but it is really difficult — if not impossible — to get money from Washington to maintain existing infrastructure.
The article explores the problem in the context of Minnesota bridges, noting that Federal funding is going forward for a bridge expected to serve 16,000 cars a day while Minnesota is unable to fund maintenance for existing bridges carrying 2.4m cars a day.
One solution has been for the Federal funder to demand evidence of a maintenance funding commitment by the state/province, but such guarantees would need to be eternal, and eternal commitments are very hard to enforce.
Canadian and Australian readers who dream of a bigger central government role in infrastructure funding, this caution is for you! Think hard about what you want to federalize. If you're going to demand federal funding for infrastructure, you might want to demand life cycle maintenance funding instead of just building things that states and provinces can't afford to maintain. Think, too, about this.