You are mostly correct about the actual dimensions of UWINDC and VWINDC. They are true Arakawa C fields with dimensions UWINDC(1:ncols+1,1:nrows,nlays) and VWINDC(1:ncols,1:nrows+1,nlays). See Figure 2b, which you posted from Otte & Pleim (2010), where yellow dots are UWINDC and red dots are VWINDC. However, one of the constraints of I/O API files is that the dimensions of all of the variables in a given file must be identical. Accordingly, all of the output fields in METDOT3D have dimensions of (1:ncols+1,1:nrows+1,1:nlays).
Rather than create new and separate files specifically for the Arakawa C staggered fields, I stored them in METDOT3D for convenience. The “extra” row of UWINDC and “extra” column of VWINDC are each filled with data persisted from the last row/column, and those data should not be used. Including the data in the file is benign, as long as you are only reading the chunk of the array with valid data. The dummy data have actual values rather than XMISS3 (or similar large number meaning “missing”) so that the visualization programs do not reflexively create garbage.
Hope this helps.