You don't necessarily need to use "Flush", it should be done automatically, but only when the FileSecurity interface runs out of scope. The "Flush" shouldn't harm, though, so you can keep it there.

A "NULL" ACL by default gives access to Everyone. So simply doing Deallocate will have the same effect. Actually, it's different: Deallocate will truely assign a NULL ACL, which Windows interprets as full access for Everyone. Your code instead assigns a valid ACL which has the user "Everyone" in it. Different things to achieve the same effective OS behaviour.