》 ファイル名にファイル内で使用されているパッケージと同名のものを使用すると
》 作ったファイル自身が読み込まれてしまうんですね。
必ずしもそうではありません。
※ とはいえ、ソース・ファイルのベース・ネームとしては、利用する
パッケージの名称と一致するものを避けるのが、無難なのかも
しれません。
例えば、
\documentclass{article}\relax
\usepackage{graphicx}\relax
\begin{document}
Hello, world.
\end{document}
という内容で graphicx.tex を作成してタイプセットしても
エラーは生じません。
一般に、\usepackage{PACKAGE} によって PACKAGE.sty というファイルが
読み込まれますが、chemfig パッケージの場合、chemfig.sty の中に
\input chemfig.tex という記述があるため、タイプセット対象が
chemfig.tex というファイル名であるとそちらを読み込んでしまうと
いうことです。
chemfig パッケージの場合、機能面での実体はすべて chemfig.tex の方に
あるようで、chemfig.sty は、LaTeX2e の規約に従ってパッケージを
ロードできるようにするための、いわばラッパーになっているようです。
おそらく、plain TeX では、ソース中に直接 \input chemfig として
利用できるようになっているのでしょう。