Hi sfong15,
The codex don’t mention “why you do this or that” because this topic is a little complex and advance so the users that want to do this normally have a partially knowledge about the problem.
The need to convert to the data type BLOB is simply, what the codex is trying to say is that you need to convert the data type (string type) to his binary representations, we need to that in order to avoid problems of characters getting lost or garbage-characters, that it will ruin all our data in a simply. This is a safe-step because normally you wouldnt bother, the only chars affected are foreign chars like the “?” in spanish languages, this char if is not converted before in its binary representation equivalence it will be lost and sometimes screw all your database, so the risk that you have accepted using the script you provide is that, if you have foreign characters they will be converted to trash during the conversion process…
Adding just a little more explanation for why you really need to convert all text(string fields) to blob its because -as i previously says- this is a safe step for converting, because setting to binary it will not be affected the data during conversion and after convertion it will be easy to rollback from binary to string types.
A little list about string-data-type to his binary representations data type is listed next
char -> binary
varchar -> varbinary
tinytext -> tinyblob
text -> blob
mediumtext -> mediumblob
longtext -> longblob
enum -> set charset to binary
set -> set charset to binary
All this fields need to be converted to his correctly representations before convertion, as you can see in the codex thay give the example of converting a text type to blob, but if you need to convert a lets say longtext you will need to change longtext to longblob.