Hi Dave,
Without having seen the source code my interpretation would be that Pl_Query_Call() would search the database and, irrespective of how a predicate/rule/fact arrived there, if it finds it, it will call it. Why would it not find a dynamic predicate? That wouldn't be very useful I don't think and, with what knowledge of gprolog internals I do have, having written some things myself, I'd be surprised if it didn't work with dynamic predicates.
The only way to find out though is to actually do it I guess, I don't have the time nor the inclination today!
Is your question really "How do I find out what predicates have been dynamically created?" in which case you would have to call current_predicate/0...here is part of the help text, I bolded the bit you might want to see!
current_predicate(Pred) succeeds if there
exists a predicate indicator of a defined procedure that unifies with
Pred. All user defined procedures are found, whether static or
dynamic. Internal system procedures whose name begins
with ’$’ are not found.
Hope that helps.