There should be no difference between the two. LC is just a Fixed container that tries to position other displayable within it's bounds. The difference could be that it creates objects and works with those object from the time it was created until it is destroyed and show/hide recreate the object or reset their st/at.
Well, be aware that showing and hiding and re-showing the LC that contains the images, as shown in the code above, does not reset the animations. It's possible that hiding it and then well later re-opening it might cause it to reset, but just flickering it certainly doesn't.
No added workload, no need to worry about that. LC (being a simple Fixed) does not do it's own magic of any kind. Do not treat it as something special, unique or advanced.
Well, I'm just saying, if you have an LC that includes, say, two dozen potential images that animate, but only shows two of them at any given time, right? then ideally, it would only cause the workload of calculating two different animations at a time, right? But if each time it starts an animation, it never stops, and keeps tracking those animations in the background the entire time, then once you've opened each, the game is juggling the full two dozen animations at once, even if that LC is put away entirely, and won't stop until the user closes and re-opens the game. I imagine at some point that could get "expensive."
I am only treating the LC as "special" in the sense that if the animation that I reference as "TestAnimatedImage" in the sample code above is called using the default "show/hide" commands, then they can work exactly like I want, they either start looping at the moment I call them, or they run once and then stop, but after hiding and showing them, they'll start from scratch. If, however, I make them visible/invisible as part of an LC construct, this behavior does not take place, it never resets.
There is no simple answer to your question, if you're looking to create a complex, controlled animation that jumps through any hoops, you may want to look into using a UDD for that because that is one of the simplest UDDs you can write. LC is a function that returns a Fixed with all of it's children as objects so it's a bit harder to control making it not the best choice for those tasks. If you just want to reset it, try writing a simple function that returns LC instead of declaring that as an image, that may work well if you which to reset it and it will not require copy/pasting the LC declaration all over the place (I am not sure but you may have to cheat a little bit to make LC objects unique as Ren'Py may try to check them for equality and use the last one shown instead of your new shiny object).
Hmm. I'm not sure how to do any of those things right now so I'd have to learn what would or would not work for my purposes. The actual LCs in question involve 16+ layers, containing a total of 60+ variable options, and I want to be able to move that entire construct around on the screen, which works for most
of the things I want so far, but it's just not working out for some of the animations I'd like to run with it, which would require the ability to start and stop the animations at specific locations/timings/etc.