Adding/removing child widgets from within a callback

Do you try to remove a widget from a callback that is connected to that widget, e.g. connect a callback to the “clicked” signal of a button, and then remove the button itself in the callback? And is it GTK3 or GTK4?

Recently someone said that he has to call gtk_show_all() for an update, which I had not expected, see [GTK] [C] Attach to grid dynamically - #3 by sharkattack. But that may be for old GTK3.