Number palindrome checker
This may help with your second point about code concepts:

How about addressing the special case for when the user enters a palindrome?  It looks to me like you are assuming the entered number will not be a palindrome and you automatically add to it (calling RecurseUntilPalindrome).  How about adding an initial check to account for that case?  I think it would go along well with your numerical value input check (I consider invalid user input as a sort of special case as well).

To address your first point, I think your code looks pretty clean as is! Really easy to follow.