Создание многопользовательского сервера на го?
Go язык  общего назначения, так что все возможно. 
Плюсы его в простоте. Одном бинарнике, то есть все отлично

1) раз мы делаем через WEB, то используем веб-сокеты? Есть ли какие-то еще интересные и практичные варианты для моей цели? Так же, интересует максимальное кол-во игроков? Как я понимаю это 64к человек на сервер? Или же нет?

Я бы рекомендовал UDP. Один порт и все, пробивание файрволов и серых  адресов описано. 
Кроме того в случае TCP добавляете второй IP и получаете N * 65000

2) Как стоит разделять комнаты? Делать все в одном инстансе или для каждой комнаты свой отдельный? Хранить на одном сервере или для каждой комнаты свой личный?

Все зависит от вашей логики. Я бы посоветовал мастер сервис, который раскидывает игрокам по воркерам и мигрирует с одного инстанса на другой как игрока так и комнату. 

3) Если на разных инстансах (или собственно серверах), то как в итоге соединять людей в них? В БД хранить порт комнаты на сервере или как то еще?
В бд хранится общая конфигурация, в редисе текущий кэш для быстрого доступа

4) Как при запуске GOшного инстанса сохранять и манипулировать им? Как указывать игрокам к какому подключаться?

Есть мастер инстанс. Он же сигнальный сервер. Он отдает клиенту мета информацию о количестве серверов, игроках, пинге. Как вы там выберите не понятно, можно дать возможность пользователю выбрать, можно автоматом. В общем это уже архитектура
Создание многопользовательского сервера на го? Задача: сделать небольшую многопользовательскую WEB игру.Не вижу препятствий. Есть куда более сложные проекты на это языке.

1) раз мы делаем через WEB, то используем веб-сокеты? Тут дело хозяйское. Можешь хоть на webRTC делать. 

Так же, интересует максимальное кол-во игроков? Как я понимаю это 64к человек на сервер? Смотря какие будут сервера. Серверам вообще всё равно сколько будет на них игроков.

2) Как стоит разделять комнаты? Делать все в одном инстансе или для каждой комнаты свой отдельный?  На уровне MVP нет. Пусть хоть хоть как-то заработает. Потом по мере роста желательно раскидать. Чтобы можно было балансировать нагрузку: в одной комнате может быть пусто, в другой густо и надо как-то ресурсы гибко предоставлять.

3) Если на разных инстансах (или собственно серверах), то как в итоге соединять людей в них? В БД хранить порт комнаты на сервере или как то еще? Есть синхронный вариант, есть асинхронный. Но лучше MVP слепить. А потом смотреть варианты. Слишком много возможных нюансов, которые надо будет брать в расчёт.

4) Как при запуске GOшного инстанса сохранять и манипулировать им? Как указывать игрокам к какому подключаться? Это уже про оркестрацию. Есть один проектик как раз на Go, который этим занимается.

PS. Под инстансом я говорю о запущеном бинарнике приложения Инстанс это обычно про некоторое окружение работающего приложения. Может быть виртуальная машина (в контексте Амазон), или контейнер Docker как сейчас модно.