Ok, I found and fixed a couple more bugs in that routine. One of them is the if statement. It should end in "end if" instead of "end". The other is the boolean used to disable the drop column command. pg is unable to resolve the ''f'' value to a boolean so I added a cast.
I also stumbled across an inherit flaw in the design of the content_type__refresh_view routine. It turns out that a content type table can have column names that match the default columns in the type input view. When the view is refreshed, two columns can have the same name which will cause the view creation to fail. I noticed this while trying to drop a column from 'publishing_wf'.