PlantUML has to create a new process for each diagram, (and communication with this new process could be source of bugs).
Users have to install DOT on their system, in addition of Java.
PlantUML is not fully portable.
Smetana code has been integrated into PlantUML, so you can use the !pragma graphviz_dot smetana directive to force PlantUML to use Smetana (the internal Java port of GraphViz/Dot embedded in PlantUML sources) instead of the regular dot process.
!pragma graphviz_dot smetana
Foo1 --> Foo2
Foo1 --> Foo3
Foo1 ---> Foo4 : test 4
Foo1 ----> Foo5 : test 5
The key point is that this image has been generated without launching Graphviz/DOT!