Using a variable inside a string is valid kix code, but it can lead to undesired effects, especially when you are trying to use $, @ and % in your strings. And when you are using the execute() command, things can get weird...

basically the solution you found is defining $proc1, $proc2, and $proc3 as string variables, not array elements. Since they are string variables you can put them inline of a string as long as setoptions('novarsinstring') is set to off, this is kix's default setting.

And last... it comes down to personal preference