I've been looking at a lot of WCF examples using EntityFramework and most of them seem to return some kind of POCO or DTO class to the client. 

I was wondering why this was since the default `EntityObject` includes the `[DataContract]` attributes and implements `INotifyPropertyChanged`. Is returning a DTO or POCO class better than an `EntityObject` (or vise versa)? And is there specific instances where it is better to use one return value over another?