¿Es esta una mala práctica de programación en tkinter?

Estoy aprendiendo a escribir programas basados en eventos usando tkinter y estoy usando el excelente tutorial de Fredrik Lundh. En eso, menciona que es mejor definir una clase (aplicación) para el marco y ejecutar el programa como una instancia de la clase en lugar de simplemente iniciarlo así:

root = Tk()
w = Label(root, text = 'hello, world!')
w.pack()
root.mainloop()

Tengo 3 preguntas:

¿Es una mala práctica de programación hacerlo de esta manera más simple?

Si defino una clase, con funciones de devolución de llamada vinculadas a los widgets, ¿todas las funciones tienen que estar dentro de la clase misma? es decir, ¿puedo tener un botón que digair dentro de la clase, que cuando hago clic ejecuta una rutina elaborada que se ha definido fuera de la clase?

¿Es una mala práctica tomar el resultado generado fuera de la clase y mostrarlo dentro?

Esencialmente, puedo hacer que el programa funcione saltando dentro y fuera de la clase, pero no estoy seguro de si es una mala práctica hacerlo (a las variables globales).

Respuestas a la pregunta(3)

Su respuesta a la pregunta