The issue is city, users, ISPs can't afford to have a separate wire per ISP per house. It's extremely expensive and wasteful, because most of the time most houses will use at most a single ISP.
What I'm saying is that city should be responsible for providing the physical connectivity, think of it like roads. It would be crazy to think that every store, office etc would have to build their own roads to every house.
All what's needed is a fiber between your house and POP. What's plugged in on both ends is up to ISP. The city only needs to worry that fiber is there and it works. Same as the city needs to worry there is a road and it is usable. The city then can lease that fiber to ISP for a fee to cover the maintenance.
Off topic: I don't want to ISP to do QoS for me so if we could chose between different ISPs I would shop for ones that don't do it. I know better which traffic is more important to me than my ISP.
Even if laying fiber would cost $0, it is still not a good idea to do it. The way things are currently if there are 10 competitors one would have 10 have then fiber cables go to their house, or every time one would change an ISP you will have to wait for new wire to be laid, potentially coordinating with neighbors, if it would have to go through their property.
Most people will only need a single fiber.
IPv6, support for static IPs, etc all depend on much more than the wire. I'm not confident municipalities have any motivation to do more than the bare minimum when it comes to managing all of this stuff beyond the physical infrastructure.