My approach to this was in LayerThawOnSelect.lsp and its LTOS command, >here<.
Two meaningful differences [there could be other lesser ones]:
1. It's top-level, not for nested objects' Layers [it could probably be made to do them, but I think you could likely be thawing/turning-on Layer 0 multiple times].
2. It thaws/turns on everything, and it highlights everything on Layers that were initially frozen or off, so you can see which they were and won't unnecessarily select things on Layers that were already visible before you started. And once you pick something, it un-highlights everything else on that Layer, so you won't be selecting something else on a Layer you've already picked.
Kent Cooper, AIA