Do indexes get transferred with pg_restore
Do indexes get transferred with pg_restore?
  I see other questions that have been answered in the negative
  (i.e. indexes do not get transferred over with the standard pg_restore)


That seems to be a misunderstanding. The index itself (containing all the data) is not in the dump. Just the commands to recreate it. So, indexes get "transferred", but really, they are recreated in pristine condition, without any bloat or dead tuples


  Do I still need to reindex?


No. After the restore you have all indexes in perfect condition. No REINDEX needed. ANALYZE would make sense, though, as advised in the manual in the chapter "Restoring the Dump":


  After restoring a backup, it is wise to run ANALYZE on each database
  so the query optimizer has useful statistics;


And finally:


  Is 9.4 THAT much more efficient?


No, not generally. Well, the size of GIN indexes has been reduced substantially. But what you see is most probably the effect of removing bloat from all tables and indexes (including system tables).