On second look, it does seems the xid crossed the 2^32 mark recently, since most tables have a frozenxid close to 4b and the current xid is ~50m:
SELECT relname, age(relfrozenxid), relfrozenxid FROM pg_class WHERE relkind = 'r' and relname not like 'pg%' order by relname;
relname | age | relfrozenxid
---------------------------+-----------+--------------
<table name> | 107232506 | 4237961815
<table name> | 93692362 | 4251501959
<table name> | 183484103 | 4161710218
<table name> | 50760536 | 4294433785
<table name> | 58821410 | 4286372911
<table name> | 117427283 | 4227767038
<table name> | 94541111 | 4250653210
…
select max(backend_xid::text), min(backend_xmin::text) from pg_stat_activity where state='active';
max | min
----------+----------
50350294 | 50350065
-Mike