I agree, it would be better including an example. The "issue" I reported is with database views not with tables. Taking your example as base:
Since view columns cannot be specified NOT NULL (or have their own constraints for that matter) reporting false here is accurate.
That we don't parse the view and attempt to derive constraints from the underlying query and tables, if any, is unsurprising.
i.e., should "CREATE VIEW test (col1) AS SELECT '1'::col1;
report NOT NULL for test.col1?
About the only SQL-visible automated way to do what you describe, to some level of accuracy, is to EXPLAIN the view and extract the tables and columns and look them up. That will fail for, say, SELECT * FROM tbl1 LEFT JOIN tbl2, when looking at properties of columns from tbl2.