Мне кажется, тут разница в том, что один подход больше акцентируется на выравнивании структур, а другой — на проверке самих указателей. Первый помогает избежать ошибок из-за смещения памяти, а второй — ловит ситуации, когда указатель просто не указывает никуда. Оба важны, но, если структура COLL сложная, выравнивание становится чуть более критичным.