One thing I see in some DDD enterprise apps that I work on, is the use of interfaces that are identical to the domain entities, with a one-to-one mapping of properties and funct
The biggest reason for always specifying the domain objects as interfaces instead of directly as classes is to give you a degree of freedom on the implementation. In your example you only have one kind of IAccount, so it's a little redunant.
But what if you had, for example:
public class Account : IAccount { ... } // Usual account, persistent
public class MockAccount : IAccount { ... } // Test mock object
public class TransAccount : IAccount { ... } // Account, not persistent
public class SimAccount : IAccount { ... } // Account in a performance sim
and so on?
By defining the domain objects as interfaces, you can replace the implementations without disturbing your domain definition.