Clases en VBScript: ¿Por qué estos dos ejemplos hacen lo mismo?

Encontré este fragmento de código en esta pregunta de StackOverFlow,Diccionario de objetos / clases en VBScript.

Mi pregunta es ¿por qué esta clase "corta" hace lo mismo que esta clase "larga"? ¿Por qué molestarse en codificar la clase larga? ¿Podría usarse la versión de clase corta con métodos adicionales dentro de la misma clase? ¡Gracias!

Clase corta

Class employeeclass
    Public first, last, salary
End Class

Clase larga

Class employeeclass
    Private m_first
    Private m_last
    Private m_salary

    Public Property Get first
        first = m_first
    End Property
    Public Property Let first(value)
        m_first = value
    End Property

    Public Property Get last
        last = m_last
    End Property
    Public Property Let last(value)
        m_last = value
    End Property

    Public Property Get salary
        salary = m_salary
    End Property
    Public Property Let salary(value)
        m_salary = value
    End Property
End Class

Sin embargo, el script completo con la clase corta, solo reemplaza la clase corta con la clase larga y obtiene el mismo resultado.

Class employeeclass
    Public first, last, salary
End Class

Dim employeedict: Set employeedict = CreateObject("Scripting.Dictionary")

Dim employee: Set employee = new employeeclass
With employee
    .first = "John"
    .last = "Doe"
    .salary = 50000
End With
employeedict.Add "1", employee

Set employee = new employeeclass
With employee
    .first = "Mary"
    .last = "Jane"
    .salary = 50000
End With
employeedict.Add "3", employee

Dim employeedetails: Set employeedetails = employeedict.Item("1")
WScript.Echo "Name: " & employeedetails.first & " " & employeedetails.last & " $" & employeedetails.salary 
WScript.Echo employeedict.Item("3").first & " " & employeedict.Item("3").last & " makes $" & employeedict.Item("3").salary

Respuestas a la pregunta(3)

Su respuesta a la pregunta