Agree on the GUID specific fields, I've used this method as well. Although, as described here, it would be tedious work per each matchline instance. Be better off using the CurrentSheetNumber within a field formula to iterate the number up or down for next/previous sheet numbers. If however you're referencing a non-consecutive sheet, your description is certainly the best method I'm aware of.
Disagree that DWGNAME won't work in this case. If the files are named C-101.dwg through C-156.dwg a diesel code can simply isolate selected characters of the dwgname. Unfortunately, there's not enough info to determine the actual file names but it seems a safe enough assumption. That said, the codes provided were just samples. I fully expected they'd need modification to suit individual needs. For instance, swapping DWGNAME to CTAB will accommodate multi-layout workflows.
Personally, I subscribe to a mentality of "1 file = 1 sheet/drawing" even if only for the sake of data protection (there are many other reasons beyond). Corruption happens; I'd much rather lose 1 sheet than 2, let alone 10+ strewn across layout tabs. Layouts definitely have their place, but aside from the mysterious file bloat they seem to cause, putting too many eggs in one basket is never a good idea.
My employer uses a separate document management system that until recently did not play well with SSM and it's still buggy but it's useable. Needless to say, when SSM wasn't working for me it was nice to have another tool in the arsenal. Diesel codes not only allow for dynamic/semi-automatic numbering without SSM or any other external file, the fields can even be placed in model space of a reference and continue to work as expected. SSM cannot do this unless you go GUID specific, and that's only marginally better than static text.
None of the options are truly "automatic"; they all require manual edits to source data, whether that be properties within the SSM file, renaming DWGs or layouts, etc. Nor are there many options short of custom programming to autonomously retrofit an existing set of plans with such info. Being mindful of this upon file/project setup allows you to configure the balance that works best for your situation.
I can empathize with this scenario since I often inherit files that have been developed far beyond setup stage and inevitably require these types of edits to make them compliant.
If file naming is truly a consecutive series in C-1##.dwg format as mentioned above, I'd would add a single mtext object consisting of 2 pieces of info directly into to the title block (further assuming it's a reference):
1. A diesel coded field as shown below...followed by
2. The total sheet count as static text, prefixed with the word "OF" ("OF 56" in this scenario)
Code:
$(IF,$(<=,$(substr,$(getvar,"DWGNAME"),$(-,$(strlen,$(getvar,"DWGNAME")),5),2),9),$(substr,$(getvar,"DWGNAME"),$(-,$(strlen,$(getvar,"DWGNAME")),4),1),$(substr,$(getvar,"DWGNAME"),$(-,$(strlen,$(getvar,"DWGNAME")),5),2))
If my assumptions are correct, that simple edit would suffice for the entire set of plans with room to expand to more sheets. No SSM required and you wouldn't even need to open the sheet files.