This was only an error under epub3. Code was addd to OPFParser.cpp to skip xml generation of an empty guide but only for epub3. So something changed the epub2 interpretation un epubcheck.
See src/ResourceObjects/OPFParser.cpp
Code:
if ((m_guide.size() > 0) || (m_package.m_version.startsWith("2"))) {
xmlres << " <guide>\n";
foreach(GuideEntry ge, m_guide) {
xmlres << ge.convert_to_xml();
}
xmlres << " </guide>\n";
}
So we could remove the check above for epub2 that allows empty guide items.
That said, epubcheck should not be changing how it checks epub2 after the fact unless it is a bug (and it was not under epub2).