GolfScript, 107 91 / 155 bytes
Prints -3-1-1 for convenient palindromes, -4-1-1 otherwise. [Try it online!][TIO1]
Alternate version, 155 bytes
As before, the entire code is executed. The difference is that and every single byte affects the output.
Prints 010 for convenient palindromes, -100 otherwise. [Try it online!][TIO2]
. # Duplicate the input string. 4:ab-1:ba # Save 4 in “ab” and -1 in “ba”. =; # Compare 4 to -1 and discard the result. 1% # Save every element from the input string in a new string. ab% # Reverse the input string. { # For each character in the input string: ... # Duplicate the character thrice. fi # Variable “fi” is undefined; this does nothing. @@= # Verify that the character is equal to itself; push 1. c43 # Variable “c43” is undefined; this does nothing. .=; # Verify that 1 is equal to itself and discard the result. )( # Increment and decrement the character. '"([{}])"'~ # Push that string and evaluate it. Result: '([{}])' ? # Retrieve the character's position in '([{}])'. -1 means not presentfound. ~ # Negate the position.. Examples: -1 -> 0 0 -> -1 2 -> -3 '"([{}])"') # Push that string and pop its last element. Result: '"([{}])' 34 (; # Decrement 34 (the ASCII code of a double quote) and discard. = # Retrieve the corresponding character. .34 # Duplicate the character and push 34. c # Variable “c” is undefined; this does nothing. = # If the character is a double quote, the index was -1. @@if # In that case, replace the double quote with the original character. ... # Duplicate the new character thrice. }% # ab% # Save every fourth element in a new string. Thisto discardsdiscard dummy values. 1; # Push 1 and discard. = # Push 1 if the modified string matches the original one and, 0 otherwise. ab:1- # Save 4 in “1” and subtract. ba:4. # Save -1 in “4” and duplicate.