Hello Dan,
you're right. The "if block" in the workflows are a bit dumb, since they can only compare a field on the left to a strict value on the right. No comparing of fields with fields and the such.
For this you would have to build Quick Action which uses an expression to set a new boolean field. This expression sets "true" or "false" depending on an comparisan which you can make in the expression. This boolean field then can be used in the if block of the workflow. On the right side of the if block condition you cannot use any kind of expression. Just string values. This is the one thing. The other is a bit more complicated.
The list control in the Request Offering usually would store all the checked items in a listed form. Usually it takes the values from the title field (don't quote me on that...can't quite remember) and stores them in a comma seperated list.
So if you use an update block to copy the values from the list control to a Service Request field (any text field really) it would store the values this way:
So 3 checked items with these values Value A, Value B and Value C would then end up in the text field of the Service Request like this: Value A, Value B, Value C
You would need to use certain String functions (https://help.ivanti.com/ht/help/en_US/ISM/2017.3/Content/Reference/Functions/_String%20Functions.htm?Highlight=string ) to search for values in that list of values and set your boolean field accordingly.
Here's a screenshot of the title field of the list control I was talking about (just as an example):

Kind regards
Immanuel Jungheim
Consultant
ITSM Group – Be Better.
www.itsmgroup.com