Illustrator "Release to Layers" but keep names?
I use this script from Carlos Canto. After releasing layers it will name new top level layers based on sublayer name. The link to the adobe forum is broken now so I don't think this is accessible through there anymore.

It is a little difficult to figure out how to properly select the layers  to make it work. You must select all the objects and also have the top layer selected in the layers palette, like in this screenshot.



Thanks Carlos for making this way back in 2014!

// carlos canto // 09/26/14  
// https://forums.adobe.com/thread/287812  
var idoc = app.activeDocument;  
var ilayer = idoc.activeLayer;  
for (i=0; i&lt;ilayer.layers.length; i++) {  
   var sublayer = ilayer.layers[i];  
   sublayer.name = sublayer.pageItems[0].name || sublayer.pageItems[0].contents;  
}