The problem is that a non-interactive program will have to use a simple rule.
How about a tool that simply creates the same diff script the GUI would if I'd selected to sync all objects (tables, sprocs, etc.)?
Being able to script the creation of that sql script alone would be helpful. The consumer could then determine if the script was empty (schemas identical).