Lightning Component Memory Leak Issue

This is expected, and part of the reason why Lightning works the way it does. Simply put, anything that is not already a SecureObject is copied into a SecureObject when you use Component#set. You will get much better performance by setting the value to an attribute, then pulling it back out, making any modifications you want, then putting it back in. This makes sure that you have a SecureObject already in memory.

For the record, I tested my paging-sorting-demo by swapping out the value in the controller from 1,000 to 50,000, resulting in 6,711 pages of 10 elements each (~67,110 records, which is simply a multiple of the number of records in my dev org), and noticed about 150kb of allocation per sort using the method of client-side sorting, and I suspect that was only because of the allocation of a new array to display the current page.

In other words, try to make sure you're reusing SecureObject and SecureComponent values when possible, because they won't be re-wrapped each time. This not only saves memory, but also a stupendous amount of processing time, especially on mobile devices. If you're interested, I could probably write up a comparison module to show you the difference in memory usage.