ソースコードへの注釈の挿入を利用するには、いくつかの理由があります。一般的に、注釈はロック lint サブコマンドのスクリプトを利用するよりも望まれています。
注釈は説明の対象となるコードと組み合わせて記述されるためロック lint サブコマンドのスクリプトよりも一般的にメンテナンスが容易です。
注釈によって、関数中のいかなる場所においても、そのロック状態についてのアサーションを指定できます (アサーションを置いた位置が、チェックの行われる箇所となります)。一方、サブコマンドを使用する場合、どんなに細分性のある解析を行おうとしても、関数単位のアサーションの指定となります。
サブコマンドに記述される関数は変更される可能性があります。誰かが関数の名前を func1 から func2 に変更した場合、func1 と記述したサブコマンドはエラーとなるでしょう (たとえ動作したとしても、ほかの関数に func1 という名前が与えられている場合、さらに悪い事態が起こる可能性があります)。
NOTE (NO_COMPETING_THREADS_NOW) など、注釈によっては、対応するサブコマンドが存在しないものもあります。
注釈は、プログラムのドキュメント化という観点からも有効です。ロック lint をそれほど頻繁に使用しない場合も、注釈を使用しておけば、プログラムのドキュメント化には有用です。たとえば、変数を宣言するヘッダーファイルでは、どのロックあるいは規則が変数を保護しているかをドキュメント化できます。あるいは、ロックを獲得し、意図的にロックを解放せずに戻ってくるような関数においては、注釈によって、その意図を明確に宣言できます。