Webform skip page programmatically
I has just found a solution for it. Perhaps, somebody can find more pretty realisation.

So, first step:
Lets your 'hook_node_view' in custom module call early than webform 'hook_node_view', you can do it through hook_module_implements_alter() something like it:

function YOUR_MODULE_module_implements_alter(&amp;$implementations, $hook) {
  if ($hook == 'node_view') {
    if(isset($implementations['YOUR_MODULE'])){
      $group = $implementations[YOUR_MODULE];
      unset($implementations[YOUR_MODULE]);
      $implementations = array_merge(array(YOUR_MODULE =&gt; $group), $implementations);
    }
  }
}


Second step:
Remove unnecessary webform components from node object.

function YOUR_MODULE_node_view($node, $view_mode) {
  if (isset($node-&gt;webform['components']) &amp;&amp; YOUR_CONDITION) {
    foreach ($node-&gt;webform['components'] as $key =&gt; $component) {
      if ($component['page_num'] == 2) {
        unset($node-&gt;webform['components'][$key]);
      }
    }
  }
}