Синтаксис другой, потому что вы можете сделать это:
class Person
AGE = 18
def self.AGE
19
end
end
Person::AGE
вернет 18, потому что вы получаете доступ к константе.
Person.AGE
вернет 19, потому что вы обращаетесь к методу.
По сути, ::
- это разделитель констант, а .
- это разделитель, вызывающий метод (когда следующее слово начинается с заглавной буквы и в выражении нет скобок).