The difference between Oracle and Postgres regarding NULL has to do with the empty string '', which Oracle incorrectly treats as being equivalent to NULL in insert/update statements.
So this problem with zero you're seeing is due to something else. Rather than gloss over it with empty_string_p, I'd rather have you point out just where you're running into them (as you've done in response to Ben's post) - they may be ACS Classic bugs, not just Postgres bugs. If they're Postgres-only, perhaps some queries got mistranslated in a way that would be educational to us, allowing us to improve the porting document to help others avoid such mistakes in the future.