уууууух, как всё закрутилось. никогда бы не подумал, что всё настолько прикольно. @Eugenyus, вам несомненно будет интересно 
итак. дошёл в скрипте до изменения видимости слоёв. при первой попытке всё отлично работает. скрипт
Код:
app.activeDocument.selection[0].graphicLayerOptions.graphicLayers[1].currentVisibility = false;
работает просто замечательно и вырубает именно второй слой, как и задумывалось. но радоваться, как оказалось, несколько рановато. скрипт
Код:
var pic = app.documents[0].allGraphics[0];
var picLay = pic.graphicLayerOptions.graphicLayers;
for (q=0;q<picLay.length;q++)
{
picLay[q].currentVisibility = false;
}
вылетает на втором шаге с сообщением, что, дескать,

раз множество прочитав каждую букву в цикле, я начал понимать, что я чего-то не понимаю. но чего я не понимаю — я ещё не понимал.
мои метания и многочисленные тесты с "огого" после каждого — я глубоко описывать не буду, но в итоге оказалось, что при изменении видимости слоя в прилинкованном файле — меняется сам линк. то есть в данном примере переменная
pic становится undefined.
всё меняется! даже
id этой картинки в
app.documents[0].allGraphics.
и выделение с этой картинки снимается.
то есть после изменения видимости одного слоя нет почти никакой возможности вернуться к этой картинке, чтобы сменить видимость следующего слоя.
пока единственный способ, который мне пришёл в голову, пока я писал этот пост — делать список
id всех картинок до смены видимости слоя, и после смены искать какой
id лишний. (по названиям файлов не катит — в вёрстке файлы прилинкованы многократно. для этого и нужно убирать видимость со слоёв).
вот такой вот пердюмонокль.
есть идеи, как найти вернуть эту картинку в переменную
pic без перебора всех id после каждого изменения видимости слоя?