- I have never worked on a project where this kind of thing goes on;
- it is not typical design;
- I have never heard or read anyone claiming it is a good practice;
- I can't think of any benefit from such a design;
- I can think of nuisances it causes.
When you access a public instance field of a data object, you are already "programming to contract"—that's all the contract you get from a bean. The layer of accessors adds nothing, let alone another layer of interface. Java Beans are an admission of the fact that much data is just that – data – and encapsulating it behind a contract only hurts its utility. FP, probably the nicest programming paradigm in existence, got this point right.
One may ask (it's @pst, actually :), what if different entities implement different serialization strategies? What if they store data differently internally? Perhaps one is super-duper-over-clever and does lots of bit-twiddling for "performance" reasons.
Yes, we can certainly imagine some scenario where this is actually called for, but it goes the other way around: first you realize you'll be doing such a project, then you introduce interfaces around beans. You don't do it up front because "maybe, just maybe, this crazy requirement will come about in the middle of our project". And practice clearly shows that this almost never happens.
Also, don't forget that constructors are out of question in such a design. Enforcing a project-wide policy to write abstract factories for each and every piece of domain data—and for no definite reason—is definitely not what one could call a reasonable design choice.