I believe the checks below should raise exceptions not warnings. If draw_labels is True, it is because the user has specifically requested it (default is False). If cartopy cannot do it I would much rather cartopy raised an exception instead of flipping the specifically set boolean keyword arg. As it stands I believe the warning will only be issued for the first occurrence. Subsequent calls will simply fail silently, producing undesired results.