プレハブ型(GmaeObject)かスクリプト定義してるクラス型かで、型が違うから同じではない

片方はプレハブそのものでもう片方はそのプレハブにアタッチされているスクリプト(のクラス)
GetComponent()や.GameObjectを使って相互にお互いを取得することはできるというだけで、
Instantiate()がどちらの型でも受け取れて、受け取った型で返す機能を持っているということ

処理の速さ、コードの短いさ、全体の見やすさ、などで好きなようにすればいい