Thinking about the advantages of linked lists (e.g. cons / prolog lists) vs. array representations (e.g. args), and related copying overhead of arrays when they need to be resized, I noticed the following article that offers some benchmarks.
It seems that locality of reference – i.e. the optimal use of memory cache vs. pointer chasing in linked-lists which often misses caches is a key reason of reduced performance – also, per a referenced lecture by Bjarne Stroustrup )
I also noticed early papers on Hashed Arrays  and unrolled lists  – i find the Hashed Array in particular interesting, but unrolled lists also seem to have much potential.
I wonder how such data structures considerations compare to how Prolog stores and accesses list and graph structures stored as dynamic facts or as terms during predicate processing.