1.
Event(Events* const owner, EventData &initData)
тут получается константный указатель, а не константное значение под указаетелем, но т.к. указетель (те самые 4 байта, ну или 8) передаются по значению, то const тут не нужен
если нужны константные данные, то будет вот так
Event(const Events * owner, EventData &initData)
2. Да GCC если не находит кандидата, то выдаёт все метода с подходящим именем
- ну тут Алексей уже всё сказал
3. У BCB6 насколько я помню компилятор гораздо больше соответсвует стандарту чем VC6 скажем, но до GCC последних версий ему всяк далеко
, кроме того gcc последних версий частично подерживет грядущий стандарт (с нужным ключиком), ну а для совместимости с BCB6 его можно заставить работать в режиме какого-нибуть старого стандарта, там есть специальные ключики.