I don't think it's productive to ask "what are these for?". The reason I don't think it's productive is that frankly I don't think the designer had any idea what he was doing. Putting an optocoupler in the B module - well, sort of. Trying for noise immunity, I guess, and maybe level shifting, as has been mentioned. Driving it with an optocoupler in the A module is just silly.
I suppose the lightning hypothesis is the best bet, but with both common ground and common power acting to lead any such surges back into module A, it's wasted effort.
As a general rule of thumb, AC mains voltage should always be isolated by a transformer or some type of isolation device. There should also be some way to limit both current (fuse) and voltage (TVS or MOV) on each line.
Depending on your plans for this application and where you intend to sell it, you will likely have to go through some type of UL or CE certification. Take a look at IEC 61010. That document covers many of the basic tests required.
When making decisions about required isolation, you have to consider the environment(lab bench, outside, can it get wet?), the enclosure, clearance distances, and what happens when things go wrong at a minimum. Say a resistor or diode in the design fails short, does your design start a fire? If something did catch fire, could the fire spread out of the box? Could someone be shocked by touching the box if a wire came loose? These are things you have to think about before trying to measure mains voltage. They also determine the amount of isolation required.
To answer the original question which was about cost. I've tried both approaches. Both work but I usually prefer digital isolation. In older products, isolation was usually done in analog space. The front end was typically a differential op amp with several large resistors in series with the inputs with protection diodes followed by an ISO124 for galvanic isolation. An ISO124 is not a cheap part ($19.85) but it is tried and true. It does have limitations such as bandwidth and offset voltage that have to considered. It is also bipolar. Many MCU AtoD's cannot handle any voltage below 0V. Since you are measuring an AC signal, you may have to use a seperate AtoD.
The really cheap isolation op amps are usually intended for measuring current across a shunt and have a small input range. Although you can divide down the input signal using precision resistors, signal to noise ratio will be impacted. Also gain may vary from channel to channel. This may or may not be an issue for your application. It depends on the accuracy you are trying to achieve. The small input range has usually been an issue for me so I haven't tried this approach although it could work.
I've also tried digital isolation. Digital isolators are plentiful and cheap. I've personally used digital isolators for CAN bus, I2C, and SPI. Typical front end is usually some type of filter circuit followed by an opamp, and then AtoD. The AtoD is isolated from the MCU using the digital isolator. Since the AtoD is upstream of the isolator, the quantization noise of the isolator does not have to be considered. This produces a more accurate measurement with a wider bandwidth.
One final point. Safety always trumps cost and should be your primary concern.
Best Answer
There are off-the-shelf isolator chips. For example: