# When exactly __init__() of bpy.types.Panel subclass must be executed?

I'm getting it run every time I hover a mouse over the button. Isn't it a bug? I thought it must be executed just once on addon activation.

The ____init____() function for BPY types (especially UI stuff) can be unpredictable and should not be used. You likely want to be overloading the draw() method instead.