yes I think that's normal, this might be the reason,
because this event is not directly triggered by user action like any other common events (e.g. button_click, listbox_selectedindexchanged).
This event (ActiveViewChanged) is triggered by your code, while setting the ActiveViewIndex. Which is usually you put it inside other event which directly respond to user action (click, keyup, keydown, mouseup, selectedindexchanged).
As you need other event to trigger the MultiView_ActiveViewChanged, then you won't need to restart the page life cycle. If this event need to restart the page life cycle (..Init-Page_Load-..), that would cause double cycles.
button_click.. --> this is common event which is through a full life cycle (..-Init - Page_Load - button_click - ..)
{
multiView.ActiveViewIndex = 0; --> this will trigger MultiView_ActiveViewChanged directly without restarting the cycle as it's already done by the button.
}
so you need to be careful because setting the default attribute - ActiveViewIndex - will also cause direct calling after MultiView_Init before Page_Init and Page_Load,
<asp:MultiView id="DevPollMultiView"
ActiveViewIndex="0"
runat="Server">
the workaround for this is instead of setting the default ActiveViewIndex attribute by design, you should set it by code after any value you need are set up in Page_Init or Page_Load.
CMIIW.