Do I need to `mysql_upgrade --verbose -u root -p` each time when `source backup.sql`?
mysql_upgrade may or may not be needed.  It is useful after you upgrade the server version.

In some cases (I don't remember 5.1 to 5.5), there were changes to datatypes that necessitated "fixing" the schema and the data in table(s) affected by such.

If you are dumping from the same major version that you are loading into, there should be no need for running mysql_upgrade.

If you have clues of what it changed, we can discuss further.

(Note:  Even 5.5 is getting rather "old".  I hope you will be moving forward soon.)

As I understand it, mysql_upgrade leaves a file behind after it runs.  The file tells it "I have upgraded to X.YY.ZZ, so I don't need to run again".

Apparently, that file (on your machine) says that it has upgrated to 5.5, so it should not be needed again.

Do you have any symptoms of things not working 'right'?  If so, let's approach the question from there.