My experience is the opposite. Because Prolog is an interpreted langauge, and because it tends to not need the global dependencies other languages have (e.g. no variables declared outside a predicate's closure etc) it's very easy and convenient to program in a "bottom-up" approach.
Which means, in plain English, that everytime you add a new predicate to your program, you can test it immediately on the command line and see whether it "goes infinite" or behaves in other ways strangely. It's kind of like test- driven programming; let's say, REPL-driven programming.
And let's not forget that you can get in an infinite-loop situation with any language. I have fond memories of working at a C# shop, where one line of code in a shared lib brought down the entire stack of web apps deployed by the company, because someone hadn't tested a terminating condition in an iterative loop. The post-mortem went a bit strange and it seems (I wasn't present) that upper management, who didn't know much about programming, advised that iterative constructs like for-loops etc should be henceforth avoided like the plague and recursion used instead. Obviously, nobody even tried to do that.
In another incident, in the same shop, one of the designers caused the in-house, jango-like, templating language, to go into an infinite recursion. Apparently, the jango-like language (called "mango") was Turing complete. Whaddaya know.
Playing with Turing machines is dangerous. They tend to get tied up in loops. You should know that, understand why, and code as to avoid it in any language, not just Prolog.