A BLOB contains binary data. MySQL doesn't have a clue what that binary data contains, therefore the upper() function makes no sense.
upper() only makes sense on text data, and a BLOB isn't that.
If previous versions allowed it, they were making a (possibly incorrect) about the type of data the BLOB contained- therefore it was a bug which has since been fixed.
A BLOB does not have a character encoding (it can contain arbitrary binary data), therefore there is no fixed algorithm to convert it to upper case, even if it happened to contain text in some encoding.
Mark