STIR/SHAKEN was created essentially to address this problem by introducing a strict sense of the origin of a call for the first time. STIR/SHAKEN is still early in its process but it does already make it easier for the industry tracing group to determine the actual source of these calls. STIR/SHAKEN compliance is also relatively expensive so it has sort of created a pay-to-play situation, both raising prices a bit and introducing a sort of KYC to the telecom industry where getting VoIP termination service now often involves sending the provider a passport, business registration documents, etc.
And for what it's worth, getting a phone number for inbound calls already involves a fee and $1/month is actually pretty close on for an average. It goes as low as around $0.20 a month from low-cost bulk providers and as high as $8/mo from some more consumer-oriented services (that nonetheless offer DIDs). It's just that control of a phone number (prior to STIR/SHAKEN) only matters for inbound, not outbound.
Sure they do. When I worked for a small telecom, the provenance of every call was meticulously tracked for billing purposes. Figuring out who to bill for what on each link of the chain is tricky and requires excellent recordkeeping.
That system is entirely unrelated to Caller ID, though.
ANI does tell you something, but it is not the number of the caller, it's an identifying number their carrier has chosen to use for billing purposes! For most calls not originating from POTS that's basically an arbitrary identifier and normally different from CID and other properties of the caller. Even on a lot of POTS calls it's different, for example, with institutional customers using PABXs where there is usually only one ANI number regardless of the number of DIDs etc they possess.