Consider the following code fragment:
int funcA()
{
#ifdef A
  if(1)
#else
  if(2)
#endif
  {
    doSth();
  }
}
int funcB()
{
}
VA Outline view then prints funcB() as a child of funcA() (and not as a sibling):

Note: the same happens when using for-statements instead of if.