in reply to pack and grid

your code effectively translates to following Tcl/Tk code:

this one loops:

grid [button .b1] [button .b2] pack [button .b3]
this one shows 2 buttons in a grid:
grid [button .b1] [button .b2] #pack [button .b3]
Run it with 'wish' command (provided you have Tcl/Tk installed)

This is known limitation, and maybe it has some explanation
I can only say that sometimes you can mix different geometry methods within one parent, sometimes you don't, but generally you shouldn't

you could discuss this with tcl/tk people, so they will give you more details on the matter if you really interesting

Remember that you still can use different geometries within different parents - i.e. create a Frame, 'grid' it, and then do 'pack' inside it at your will