Thank you very much for your detailed reply. This is exactly what I was looking for.
With regards to your answer in point 4:
BitShares X has Bitcoin-style addresses included in the wallet, and you can use them to transfer. Under the hood I think it works a lot like Bitcoin. The idea here is that for most purposes, account names are better as they are easier to type and remember. In any case, exchanges, developers etc. will have to experiment and customize solutions for given applications.
I've read some of the documentation and I can see that the account name and public key abstract the transaction layer, allowing for 'behind-the-scenes' generation of unique key-pairs for each transaction. I realize that this is to address the perceived flaw in address reuse that is prevalent in Bitcoin, but I'm still not clear as to whether generating a "per-account, per-customer" mechanism is an acceptable solution over the existing "single-account, memo-per-customer" method employed by bter.
For example; if I deposit Bitcoins to Bitstamp.net, I do so to a unique Bitcoin address that has been generated for me. This eliminates (almost) any chance of the Bitcoins that I send not being credited to my account.
In a comparable scenario with BitsharesX and bter.com - the reconciliation of funds to a customer account is done using the memo field. This means that if a customer mis-types the value, or forgets to enter it (and they will), the funds - while credited to bter.com - will not be credited to the customers account. This will generate significant support overhead as originating funds that do not contain the reference must then be manually reconciled.
So, firstly, is there a way to enforce a memo value - possibly allowing the provider to apply a regular expression pattern embedded into their public account (like website field now) that allows them to reject transactions that don't contain a recognized memo pattern. Or; would it be better for me - as a marketplace/exchange etc - to generate an account for each of my customers that register and give them the account name and public key to deposit their funds. This way, eliminating then need for any memo value?
If you have any use-cases for illustrating how BitsharesX would work in the context of a marketplace/exchange deposit and in the context of a BitPay/Coinbase merchant<->customer transaction - that'd be awesome.
One last slightly different question; I created two accounts within the client and when I tried to send funds from one account to the other, I was required to enter both the account name (E.g. "willabie") and the public key. The client refused to send the funds unless both values were present. I was under the possibly erroneous impression that the account name was a 'friendly' way of deriving the public key and as such, either that or the public key should be sufficient to send the funds onwards? (I'm also aware it might just be an eccentricity of the client and that the RPC commands do support this functionality - some clarity would be great)
On a side note; I firmly believe that BitsharesX is a contender for the future of crypto-currency, but how the user experience is presented will be key to gaining that adoption.