Concise null checking vs readability
I take great pleasure in the fact that your "concise" version is longer than your "verbose" version! 

If you believe one version to be more readable and the other to be more obscure, I would argue going with readability over obscurity. One obscure detail is that you're relying on people understanding 

(a = CallMethodA()) == null


Some people might think that to be an error, not realizing the expression on the left actually has a value. 

If you want to use less lines of code, you could go with something like this 

var a = CallMethodA();
var b = (a == null) ? null : CallMethodB(a);
return (b == null) ? null : b.SomeProperty;


Which isn't altogether different than your original if/else chain, but is a bit more compressed and has just the one return statement.