seems that it's sitting there even on 2.0.2 (august 2012) ...
BTW: that line is "to blame" also for FK and unique=True .
I think we'd need tests but AFAIK every FK should be able to accept either NOT NULL and/or UNIQUE . This opens up a nifty pandora's box... in some backends, you can have a unique column with multiple rows holding NULL values, other instead only accept at most 1 NULL value... but that's another story.
reassuming (IMHO)
1) FK can be unique (useful 1:1 relationship instead of 1:M)
2) FK can be nullable (i.e. the rare-case scenario where you need to store pre-set records that will be matched against the FK at a later time )
3) FK can be unique and not null (the case where you NEED a valid value of the referenced table to be inserted in the referencing. If the 'referenced' has NULLs in it, the previously mentioned pandora's box opens. In web2py a reference is made against a "sequence PK" that it's not null by default, so the pandora's box, at least without taking into consideration legacy tables, doesn't need to be evaluated)