I recently came across this problem looking at a CRM instance that had been upgraded to use early-binding. They had done something like below:
var accountInputParameters = ((Entity)context.InputParameters["Target"]).ToEntity<Account>();
This takes the InputParameters (which is of type Entity) and then bound it to the Account early-bound type.
While this seems like a good idea on the surface, as it allows all the fields of the Account to be accessed using strongly typed properties, the customer reported some strange behaviour on their Accounts.