I think this may have to do with maximum UDP package size.
This is with the Valkyrie model. Everything works correctly on OSX. Also, on Linux, if I just do
lcm = PyLCM.LCM()
msg = DrakeVisualizer.drakevis[:lcmt_viewer_load_robot]()
PyLCM.publish(lcm, "DRAKE_VIEWER_ADD_ROBOT", msg)
bot-spy shows that the message is indeed being published, but the message DrakeVisualizer.reload() tries to publish never gets picked up by bot-spy or drake-visualizer. If I change reload! to only add e.g. the first 60 links (out of 81) added to msg.link, then everything is fine as well.