Well, here's a quick and dirty replacement for RefreshPhysicalScreen(), which is only called from vid_bitmap_refresh() as it turns out. Makes menus draw and clear properly but obviously does not deal with conflicts where the camera firmware writes to the screen while CHDK is also displaying information.
extern unsigned int screen_width, screen_height, screen_size;
extern void draw_filled_rect( int, int, int, int, int );
void vid_bitmap_refresh()
{
draw_filled_rect(0, 0, screen_width, screen_height, 0x00) ;
}