Wow, Aaron! So detailed analysis! Even though this sample is just a little piece of work, I am very glad that it is of so big interest for you.
Probably, I must add few more practical ideas. In the actual game I am coding now I use instances in combination with individual actor for each in-game character.
All actions that require individual non-looping animation are played using this individual actor, while all actions that use looping animation are performed by the instanced actor (borrowed from a “clones pool” in runtime). For example, simple walk and run animations are performed by instances, and as soon as the character requires some specific individual animation, the cloned actor is detached from the placeholder nodepath, and replaced by character’s own individual actor. And the other way round.
Since in my game most units are supposed to move almost all the time, most animations can be played by clones, thus relieving the CPU.
Maybe, it makes sense to create another sample to demonstrate it, but I am not sure how to make it visually interesting: it is about lowering CPU load, and not much to see on the screen…