Lots of things used to be a max of 255, because that is the maximum value that an unsigned 1 byte ( 8-bit ) number can represent 11111111 = 255. to get to 256, you have to have 9 bits (1 0000 0000)
As to the second part I'm not sure,
but the sql question is: it used to be an issue much more than it is today, What you specified controlled the maximum size of each row of data, and the Database engine would have to allocate enough space for each row to be able to store that maximum. So the values you entered affected how much space was allocated on disk for each record, and therefopre also affected the maximum number of records per "page" of disk space... The fewer the records per page, the more Disk I/O operations it takes to retrieve any specific number of records... As disk I/O is the overriding factor in Database performance, this had a major impact.
Nowadays, however, modern RDBMS systems are coded to optimize that problem away, I Think, by dynamically controlling how many records are actually stored on a page based on the data that is actually in the record instead of on the maximums you specify.