Update: Turns out there wasn't an issue with the update, but there was an issue with script execution order. With 2D Toolkit 1.80, the sprite mesh doesn't exist until Awake is called on the sprite. In certain cases, for example when another script is attached to the same object, reading renderer.bounds, it will read 0,0,0 until the mesh exists. In this case, it was being called from another scripts Awake function, which was being executed before the sprite Awake (which creates the mesh).
2D Toolkit 1.90 will have a sprite.Awaken() function or something similar which should be called before accessing a sprite from Awake(). This is slightly inconvenient, but saves a ton of performance checking if (!sprite.initialized) everywhere just for this one case.