Using gdb_arch_list_lookup_by_info() during the arc_gdbarch_init() will allow us to reuse the gdbarch object whenever an inferior is restarted.
Apparently, gdb_arch_list_lookup_by_info() allows reusing the gdbarch objects when arch, abi, target description, and optional other stuffs remain the same.
One can look into other targets to get some idea.