Как правильнее верстать навигацию с точки зрения семантики?
Я почти всегда верстаю через список.
Для nav>ul>li отлично задаются стили таблицnav{
  display: table;
  table-layout: fixed;
  width: 100%;
}
ul{
  display: table-row;
}
li{
  display: table-cell;
}
Что позволяет сверстать однострочное меню с одинаковой шириной элементов
Хорошая статья (англ) по этой теме: css-tricks.com/navigation-in-lists-to-be-or-not-to-be
В ней еще советуют добавить к nav аттрибут role="navigation"
если не ошибаюсь, видел вот такой вариант написания<nav>
    <li><a href="#">Lorem</a></li>
    <li><a href="#">Lorem</a></li>    
</nav>
На w3c приведен такой пример<nav>
   <h1>Navigation</h1>
   <ul>
    <li><a href="articles.html">Index of all articles</a></li>
    <li><a href="today.html">Things sheeple need to wake up for today</a></li>
    <li><a href="successes.html">Sheeple we have managed to wake</a></li>
   </ul>
  </nav>