void Start()
{
  StartCoroutine( AAA() );
}

IEnumerator AAA()
{
  yield return BBB();  // X
  yield return StartCoroutine( BBB() );  // Y
}

IEnumerator BBB()
{
  for( var i = 0; i < 10; ++ i )
  {
    yield return null;
  }
}

XでもYでも同じ動作をするのですが何が違うのでしょうか