title: Does a pass-through async method really need the await/async pattern?
body: <p>Let's say I have an method that calls another async method immediately or similar:</p>
  
  <pre><code>//Main method
  public async Task&lt;int&gt; Foo1( int x )
  {
       var result = await DoingSomethingAsync(x );
       return DoSomethingElse(result );
  }  
  //other method
  public async Task&lt;int&gt; Foo2( Double double )
  {
       return await Foo1( Convert.ToInt32(double ) );
  }  
  </code></pre>
  
  <p>Is there any specific reason that <code>Foo2</code> needs/should have async/await, as opposed to simply calling:</p>
  
  <pre><code>//other method
  public Task&lt;int&gt; Foo3( Double double )
  {
       return Foo1( Convert.ToInt32( double ) );
  }  
  </code></pre>
  
  <p>In a consumer, this would still be awaited, likeso, regardless of:</p>
  
  <pre><code>int x = await Foo1(1);
  int x = await Foo2(1D);
  int x = await Foo3(1D);
  </code></pre>
  
  <p>All those statements will compile. Will the compiler generate different IL for the two different methods?</p>