the 'verse' language by SPJ and co explores the notion that datalog semantics can be expressed using 'normal' programs in SSA form. As long as you use pure values this works out quite well. there are some convenient normal datalog abstractions like implicit union of clauses with the same name that don't map so well.
I expect this is going to show up as a really popular model at some point - don't have to have two separate worlds for queries and other logic.