Ответ 1
Как вы, возможно, знаете, Mathematica загружает двоичные файлы MX, которые реализуют некоторые из его функций. Эти файлы MX хранят реализации, а также определения и атрибуты.
Это коварно, но ваш Unprotect[Rule]
отменен загруженным MX файлом Mathematica, и это объясняет, почему он работал во второй раз. Поскольку Mathematica уже загрузила все файлы MX, которые ему нужны.
Если вы сначала оцениваете все символы в своем выражении, то он перестает жаловаться:
{Unprotect, Rule, Attributes, Plot, LogLinearPlot, ListPlot,
ParametricPlot3D, True, False, Print};
Unprotect[Rule];
Attributes[Rule];
pp = Plot | LogLinearPlot | ListPlot | ParametricPlot3D;
(h : pp)[True -> False] ^:= Print["Irrelevant data"]
РЕДАКТИРОВАТЬ Первая оценка необходима для запуска всей автоматической загрузки, прежде чем снимать защиту Rule
.