Thanks Jeff for the explanation.
I agree with your aversion to using java.sql.Date anywhere in code as a Model's type, but I was looking at a marshalling issue I came across (with marshalling *Example objects) the wrong way.
What threw me off was the Example class method GeneratedCriteria#addCriterionForJDBCDate( String, java.util.Date, String ) in regards to my table that had a base column of DATE type (in MySql). It saves that value as a java.sql.Date to the Criterion's Object value field. Since I'm attempting to support XML/JSON marshalling for all generated types (and their associated primary keys & example classes), I had a custom deserializer taking my JSON date for the Object value field and setting it always as java.sql.Date. Setting it always as java.util.Date doesn't seem to have broken the Example class from my tests, and got me past my issue.
Those Example classes are behemoths. Super useful, just wish I had a better, intuitive understanding of how and why they do what they do.
Nevertheless, I'm no longer blocked. Thanks again Jeff!
-Nick