a value between 5 and 15 for nn is printed, but that value is not used in the result; the slider now runs from 1 to 23.
So, whether nn has a value or not, just before the box structure is printed, the frontend asks the kernel to evaluate the initialization. But the returned value of nn is used in Manipulate only when nn did not have a value before. That embarasses me. Any explanation is highly apprectiated.