Тут есть нюанс. Ты заменяешь дефолтный сокет своим - соответственно все флаги и прочее проставляешь сам. Какие там ещё будут флаги где-то кем-то сконфигурированы - тебе должно быть глубоко пофиг
я конечно понимаю желание оградить переданный сокет, но это добавляет дополнительные условия хотя бы в документацию с описанием как это всё внутри работает
ты упёрся в то, что флаги трогать не хочешь и сокет трогать не хочешь - значит ты не должен и создавать его руками. просто пробрось все параметры внутрь ф-ции и всё.