I do appreciate this work, and I would add that there are two problems with ARC as it stands- it's over decorating of our code with ARC calls and copies, and the cost of ARC. (Even if we did the work below, its still silly/costly to incessantly retain/release when objects are static and immortal)
Related to the cost of ARC, there's a better paradigm where we don't use atomics when the compiler knows the allocations are local:
One could imagine if the function call to allocate the HeapObject under the swift object was aware of the locality of reference of the ptr being asked for then the ARC call could in most cases not be atomic, and not use a global malloc call. References could then be promoted to global space only when they enter it.
And when they are there, use the old ARC code.
This kind of move would directly address the other half of the problem- which is that swift currently doesn't do a good job of letting we developers communicate our intention of local work, local allocation to the operating system in a way that lets us take advantage of the performance inherent in modern hardware. (We can communicate it (via structs, or local refs, but because ARC is implemented as a global "WE NEED ATOMICS ALL THE TIME" , "WE NEED GLOBAL MALLOC" and because the implementations of Arrays etc use this stuff internally, our performance is mangled regardless.
If you are doing local alloc, and local compute, you don't need atomics, or a global allocator.
By putting it under the hood this way, developers would just benefit and not be exposed to the change directly. And it could be rolled out with @newarc pragma thing on specific instances for testing, and one of those "I want swift6 in my codebase" feature flags.
Also, I do think it's worth considering annotating whole class hierarchies as never copy. Oh, and in our work, we have found we are going to need a less reference counting happy Array. Its pretty hard to dodge Arrays all the time in performance needing code, and you don't want all of us dreaming up performant substitutes.