The issue is that when `go-thereum` package is used to communicate with Pantheon through JSON-RPC the `eth_getCode` (https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getcode) is executed with parameter "pending" and Pantheon's JSON-RPC return a response with a value "null" instead of containing contract's code.
`go-ethereum` backend (and JSON-RPC) returns contract code bytes no matter what "BLOCK PARAMETER" was passed as the second parameter (`pending` or `latest`) to `eth_getCode` method.
Example of one of the contract codes retrieved through infura.io from mainnet. As you can see both `latest` and `pending` returns contract's byte code.
In our case if there is no pending transaction for the contract's code and we call the Pantheon JSON-RPC `eth_getCode` method with parameter "pending" we receive different responses than what we expect per infura.io example.
Call with parameter "pending":
Call with parameter "latest":