On the subject of exceptions to the rule, there have been ships big enough to carry other ships aboard them. A notable recent example was when the USS Cole was damaged in a suicide attack in Yemen in 1999, and was brought back to the US for repairs by being loaded onto a large freighter. (Probably to minimise the risk of the Cole being lost at sea due to her damage, as a number of Navy ships have been lost that way before whlie sailing to port for extensive repairs)
In general, I’d say that the general definition of a ship as a large-ish seagoing vessel capable of independet operation works just fine. Most of the examples of large seagoing vessels being called “boats” would seem to be a result of tradition rather than definition (and as anyone who has gone to school at Texas A&M would know, traditions need not make any sense).
Oh, and a link to Cecil’s column.