&gt; As a trivial example of a data structure with circular references, how about a doubly linked list?<p>Not really, no. There&#x27;s no reason why the backlink should increment the reference count.<p>Realistically, circular references are only a deal-breaker for Lisps, and only due to some very specific design decisions of Lisp. E.g., circular references are never a problem in C++.<p>&gt; A general purpose programming language shouldn&#x27;t impose arbitrary restrictions on data structures like this.<p>Really? Why not? &quot;We don&#x27;t support refcounted circular references, please rewrite your code if you use them&quot; is a perfectly valid design decision. Personally, I&#x27;d rather have that than some rube-goldberg type monstrocity of a memory management system just to support a very obscure corner case.