What is the reason behind CS1998 "method lacks await operators"
<p>The C# compiler generates a CS1998 warning when an <code>async</code> method lacks any <code>await</code> operators.</p>

<p><em>What are the reasons behind the warning?</em> </p>

<p>I know that <code>async</code> introduces overhead in the method by adding a statemachine and exception handling.</p>

<p>Is the primary reason for the warning <em>performance</em>?
Or is the reason to notify me that I might have forgotten an <code>await</code> somewhere?</p>

<p>Maybe someone from the language design team can shed some light on this one... :)</p>

<p>(Please: do not post answers that say 'you can remove <code>async</code> to make the warning go away'. I want to know the reasons and decisions behind the warning, not ways to work around it.)</p>