Я думаю, что ваши гипотезы верны. Эксперимент с id
(идентификация объекта):
In [1]: id(255)
Out[1]: 146349024
In [2]: id(255)
Out[2]: 146349024
In [3]: id(257)
Out[3]: 146802752
In [4]: id(257)
Out[4]: 148993740
In [5]: a=255
In [6]: b=255
In [7]: c=257
In [8]: d=257
In [9]: id(a), id(b), id(c), id(d)
Out[9]: (146349024, 146349024, 146783024, 146804020)
Похоже, что числа <= 255
рассматриваются как литералы, а что-то выше, обрабатывается по-разному!