Можно ли в Go собрать проект с объявленными, но не используемыми переменными?
Нет, собрать нельзя.
Можно сделать финт ушами(но это дурной тон)
var _ = fmt.Println
var _ = myvar
То есть, воспользоваться нужно в любом случае.

На самом деле, это очень хорошая фишка, делает код чистым(у меня во всех других языках всегда включён такой же линтер), а с импортами при комментировании проблем никаких не возникает, если пользоваться IDE.
Сначала убивает. Но потом привыкаешь. Да и уборщику работать проще