I have 35 year's experience with COBOL. I don't like GOTOs, Procedure Sections, or Perform ... Thru's. If updating an old program and have carte blanch, I get rid of the GOTOs etc. if I can. There is only one program that I was unable to do so. It had multiple GOTOs jumping from and into the middle of perform loops. I never could figure out how it actually worked, although it seemed to.
I am now using Microfocus COBOL, and an editor that can switch the screen to 60 lines by 132 columns. Microfocus has an option for "free format" source code which removes the line number columns and extends the line width to 255. Line numbers are from the old days of source code on cards. They were essential then, useless now.
I use initial caps for COBOL reserved words except "and", "or", "not", "in", "of", "is", "with", and some others, which I write all lower case. All user-defined words I make all caps.
I line up "Pic" in column 34, and "to" in the leftmost column I can in each paragraph. I line up "from", "by", and "using" right-justified with the "to"s
I use a 3- or 4-digit paragraph name prefix, using structure chart number for the prefixes. I try to avoid 4-digit prefixes, but will even expand to 5-digit if the program is complex enough. I try avoid complex programs.
Most programs I write are 200-600 lines long. I use an alpha character in the prefix if it is a routine common to two or more paragraphs, the alpha character being at the point of commonallity. For common general-purpose routines, especially those in copybooks, I do not use a prefix and put them at the end of the program source.
By using 132 columns for source code, I can almost always have each statement on one line only, and almost never have to continue non-numeric literals. (The makes report heading lines very easy to read and modify.) Since free-format source can be up to 255 columns wide, I sometimes make report headings extend past column 132 is they are complex enough, although I try to avoid that if it makes sense, even moving the "Pic"s to the left.
I make my picture strings X(nn), 9(nn), S9

, S9

v99, and 9(nn)v99 whenever possible. I don't like 3-digit repetition factors, and use them as sparingly as possible. I make picture characters that don't reserve space such as "v" and "p" lower case. (I make "S" upper case as it is always the first character in the string.
I put "Value" in column 44 for "88"-levels; and in column 34 for "78"-levels, if you know what those are.
I always use "End-" for conditional verbs and line up the "End-" with the verb, and "Else" with "If". I don't put periods inside paragraphs, nor do I ever use "Next Sentence".
I try to make my procedure paragraphs fit entirely on the screen, which is pretty easy with a 58-line screen (or even a 48-line screen that most text editors can support).
Back in the mainframe days, I always tried to use a 3270-5 or a -4 for editing.