考慮すべき問題は 2 つあると思います。
具体的に
シーケンス図は、単一の具体的なシナリオ (ユース ケースなど) を伝えるために使用される場合に最適です。
それらを使用して複数のシナリオを描写すると、通常はユースケースのすべての可能なパスで何が起こるかを示すために、それらはすぐに複雑になります。
ソース コードは、この点でユース ケースのようなものなので (つまり、特定の説明ではなく一般的な説明)、シーケンス図は適切ではありません。あるメソッドのコール グラフを x レベルに展開し、すべての if & ループ条件を含むすべての情報を 1 つの図に表示することを想像してみてください。
だからこそ、おっしゃる「本質を捉える」ことがとても大切です。
シーケンス図は A4/レター 1 ページに収まるのが理想的ですが、これより大きくなると図が扱いにくくなります。おそらく経験則として、オブジェクトの数を 6 ~ 10 に制限し、呼び出しの数を 10 ~ 25 に制限します。
コミュニケーションを重視
シーケンス図は、内部処理ではなく、コミュニケーションを強調するためのものです。
発生する通信 (関係者、非同期、同期、即時、遅延、シグナル、呼び出しなど) を指定することに関しては非常に表現力がありますが、内部処理 (実際にはアクションのみ) に関してはそうではありません。
また、変数を使用できますが、完全にはほど遠いです。一番上のオブジェクトは、まあ、オブジェクトです。それらを変数と見なすこともできます (つまり、それらの名前を変数として使用します) が、あまり便利ではありません。
たとえば、ある要素とその前の要素を把握しておく必要がある連結リストのトラバーサルを、シーケンス図で表現してみてください。「current」と「previous」という 2 つの「変数」オブジェクトを使用し、必要なアクションを追加して current=current.next および previous=current にすることもできますが、結果は厄介です。