Just quick check before I start to dig into this. Is there a way to do OS detection only with nmap -O ? If yes, any pointers to right direction, please.
there is no such way / configuration for this as the nmap OS detection is only used as a last fallback if everything else fails (service and OS detection is kept as independent as possible from nmap).
While there might be a possibility in the future to define an own priority (e.g. give the nmap OS detection more prio over other ones) please have a look at Call for info: Unknown OS and Service Banner Reporting and submit possible improvements in a separate / new thread.