[Now FIXED: Illustrator CC2017 October update!]
The problem has been going on forever, it's due to the need to physically-visually show the File menu so that the scripts that are installed in the scripts folder of Adobe Illustrator are visible. Only then can you re-load the actions which contain the scripts by loading the action sets, to get the working script menu items back. A light-weight semi-automatic scripting way can be used in versions CS6+ to save some clicks: it depends on your action sets being saved in a pre-determined folder. It also needs to be installed as a script in your File > Scripts menu. Once it is there, it works by having you manually activate this script through the file menu which by definition shows the file menu. Since the menu is shown at the point of the script activation, the actions which are automatically reloaded by the script will be working.
#target illustrator
function ReloadActions(){
function removeActionSet(setName){
var errorFlag = false;
while(!errorFlag){
try {
app.unloadAction(setName, "");
} catch (e) {
errorFlag = true;
}
}
};
function loadActionSet(aiaFile){
app.loadAction(aiaFile);
};
function reloadActionSet(aiaFile, setName){
removeActionSet(setName);
loadActionSet(aiaFile);
};
if((app.version.substr(0, 2) * 1) < 16){
alert("Sorry, the Action Reloader script only works in versions CS6 and above.");
return;
}
var actionFolder = Folder(Folder.myDocuments + "/" + "Illustrator Actions");
if(!actionFolder.exists){
alert("The folder for script-reloadable Actions is not found at '" + decodeURI(actionFolder) + "'");
return;
}
var fileMask = ($.os.match("Windows"))? "*.aia" : function(f){return f.name.match(/\.aia$/);}
var actionFiles = actionFolder.getFiles(fileMask);
var thisFile, thisSetName;
for (var i = 0; i < actionFiles.length; i++) {
thisFile = actionFiles[i];
thisSetName = decodeURI(thisFile.name).replace(".aia", "");
reloadActionSet(thisFile, thisSetName);
}
};
ReloadActions();