С математической точки зрения, вы всегда можете разделить на любое комплексное число, кроме 0.
Однако наивное выполнение математической формулы приводит к коду, который не будет работать так хорошо, как мог бы.
В вашей реализации, например, при вычислении знаменателя может произойти переполнение до бесконечности или уменьшение до 0, даже если и действительная, и мнимая части y не равны нулю и конечны.
Если ваша цель - создать код «производственного качества», вы можете поискать в Интернете «алгоритм сложного деления» или что-то подобное или взглянуть на исходники glib c.