Moving a character around an LCD screen - is there a better way?
You could encapsulate the logic of detecting a button release into its
own function:

// Return the button that was just released, or btnNONE.
int releasedButton()
{
    static int last_button = btnNONE;
    int previous_button = last_button;
    last_button = read_LCD_buttons();
    if (last_button == btnNONE)
        return previous_button;
    else
        return btnNONE;
}


Then the logic in the loo gets simplified:

void loop()
{
    switch (releasedButton()) {
        ...
    }
}