In 2014 Code bathrooms, and unfinished basements didn't need AFCI.
In 2020 this has been changed to ALL 120V, 1-phase 15/20 amps outlets in dwellings.
Are they better than GFCI? Are apples better than oranges?
They really do different things. And solve different problems.
With most short circuits where you have "good grounds" (green wire connected to metal parts), and a short circuit to that metal part occurs, the "good ground" lets such a large amount of short circuit current to pass that the standard breaker trips or a fuse blows. It's sort of counter-intuitive that you WANT a LARGE amount of short circuit current to occur. So you give it a nice (green wire) path.
GFCI's solve the problem when you have bad grounds (no green wires, or poor, etc..) and the short circuit current doesn't have a good path back to the transformer and current is not large enough to trip the breaker and the metal enclosure stays energized waiting for someone to come along and touch it. GFCI's trip on the tiniest of stray ground fault current.
Like other have said AFCI's compensate for poor contractors.
AFCI's are for the problem where all the current stays IN the proper wire path (i.e. no ground fault for a GFCI to detect), but a poor wiring connection creates electrical resistance at a connection. This is equivalent to creating a mini-heater at that connection (switch, receptacle, junction, etc..) in series with the normal load being operated. This heat can melt things and catch surrounding materials on fire. AFCI's are suppose to detect the arc that comes with these poor connections.
...but note: for this "mini-heater" to be created, the "normal" load has to be pulling enough current that it creates heat at the bad connection.
For most loads like lighting and motors, if there's a bad connection that adds resistance to the circuit (and reduces the voltage the load sees) the user will detect that full voltage is not getting to the load and know there's a problem (lights may flicker, motor may not start, etc..) hopefully before the "mini-heater" bad connection ignites.
But if your running a (say) space heater, you're not going to detect that it's only putting out 1000 watts instead of 1600W, meanwhile the receptacle connection is putting out 300 Watts of heat, etc...(made up numbers). GFCI's or standard breakers can't detect this mini-heater in the circuit because no current is leaking elsewhere, and there is no overload happening (the current might actually decrease with the increased circuit resistance).
If you confident wiring was installed properly, my GUT feeling is GFCI's protect better for future unintended events (like dropping radio in bathtub, insulation on a extension cord getting nicked, etc..). Again: apples and oranges.
:2cents: