there is a disgreement on when to use HTTP::Release for iRules. One side is stating every iRule using HTTP needs to have the HTTP::Release. The other side stance is that HTTP:Release is used only if HTTP::Collect is used within the iRule.
So what is the proper usage. I have read the HTTP::Release document and it states it is used when using HTTP::Collect
As you correctly stated, the HTTP::release releases the data collected via HTTP::collect. HTTP iRules that don't meet this criteria don't need you to script it in any statement.
Also, the HTTP_REQUEST_DATA and the HTTP_RESPONSE_DATA events have an implicit release of the captured data, so the HTTP::release command isn't really necessary in those events unless you're scripting additional HTTP::collect events.
I have written countless of iRules. Rarely do you need to use HTTP::Collect or HTTP::Release.
Usually, you will use iRules on the HTTP_Request method to perform modifications to HTTP headers, perform redirection, issue custom HTTP respones, load balance based upon URI path, or even stream replace text. For those cases that you need the entire HTTP payload, or a portion of it, to make a change to data, only then would you perform HTTP::Collect and HTTP::Release.
Not sure who your disagreement is with, but perhaps taking the F5 Developing iRules class would be of great benefit to them 😉