Hi,
In past versions of Unity the Instantiate method returned an object of type Object. This was changed in Unity 2017, I think. It now returns a GameObject object, so casting is not necessary anymore. Game developers who have been using Unity for years still cast out of habit.
Have your questions been answered? 
See also:
- Forum User Guides : How to mark a topic as solved