This article vastly overstates the role of closures. The connection isn't that deep - it is a simple consequence of life being a super-complex software executed in a biochemical machinery. Thus, you can find any programming construct the process of life, and argue that life wouldn't work without that.
There are lots of much more important things than closures. One example is the ability be self-referential on all levels (not to be confused with plain recursion). This blurs not only the line between code and data, but also between software and hardware. And this happens in a much deeper way than we're able to do now with things like FPGA/CPLD or hardware virtualization.
If you are really interested in that topic, I recommend the book "Gödel, Escher, Bach" by Douglas Hofstadter. It is written very well and should be especially easy to understand by programmers:
There are lots of much more important things than closures. One example is the ability be self-referential on all levels (not to be confused with plain recursion). This blurs not only the line between code and data, but also between software and hardware. And this happens in a much deeper way than we're able to do now with things like FPGA/CPLD or hardware virtualization.
If you are really interested in that topic, I recommend the book "Gödel, Escher, Bach" by Douglas Hofstadter. It is written very well and should be especially easy to understand by programmers:
http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach