Now, if someone created a bitcoin address based on keccak, is it possible to spend from that address?
I'm going to say NO, but for a different reason than everyone else.
A legacy pubKeyHash is derived from "pubkey -> sha256 -> ripemd160" and the locking script is OP_DUP OP_HASH160
Now, if you want to use a bitcoin address based on keccak, you would use a locking script that looks something like this: OP_DUP
Unfortunately, the Keccak hash algorithm probably cannot be implemented in Bitcoin's scripting language, I believe, simply due to a lack of the necessary of operators.
Somebody correct me if I am wrong.