I was thinking more on the idea with references, and come to the same conclusion, it is better to have it as a manual 'sync' command rather than an automatic update. Besides of the possible unwanted changes, it brings too much trouble handing the insert/delete position (as all data shifts inside all blocks). I'm going to think some more before trying to implement it. At least a simple block copy function is possible and should not hurt anything, like, press something, input an existing block name, and it'll get copied into current position.
I implemented RowOpt to cram down all songs into my 1-bit collection, it worked just fine at the moment, but yes, it may have issues. One thing is that it won't optimize above the slowest speed, which is vary for different engines. I confirm the issue with the example, will look into it.