webroot w Cake służy do przechowywania publicznych zasobów (obrazków, css, js, uploadowanych plików itp.) i działa jak zwykły katalog na serwerze z publicznym dostępem - cokolwiek tam nie wrzucisz będzie widoczne na zewnątrz, w przeciwieństwie do katalogów z modelami, kontrolerami i innymi wewnętrznymi bibliotekami.
działanie iframe możesz sprawdzić w ten sposób:
1. stwórz w app/webroot katalog helloFrame, a w nim plik hello.php o treści: <h1><?php echo 'Hello World' ?></h1>
2. umieść w którymś widoku taki element: <iframe src="<?php echo $this->webroot ?>helloFrame/hello.php" width="100" height="100"></iframe>
gdy odwołasz się do tego widoku, powinieneś zobaczyć swojego hello worlda, czyli ścieżka działa i skrypt się wykonał.
z przyzwoitości powtórzę, że odradzam takie wyjście, ale jeśli nie ma innej opcji to trudno

vendory natomiast to importowane klasy i biblioteki. powiedzmy, że chcesz sobie czymś generować pdfy. wrzucasz klasę (niech nazywa się mypdf.php) do vendors, później w kontrolerze/widoku importujesz ją za pomocą App::import('Vendor', 'mypdf'); - to ładuje Ci podaną klasę, od tej pory możesz tworzyć z niej obiekty. vendor się w Twoim przypadku nie sprawdzi, bo oprócz logiki masz jeszcze w swojej ankiecie prezentację i odwoływanie do bazy. prędzej dałoby się ją przepisać jako plugin