I am newbie to CQ5 and wonder about it's capabilities in order to decide if this is the system we should use in our company. I be greatful if you could answer the following.
In my home page i have a carousle , instead of building a static list of articles i'd like on every page view to submit an API request and have the Carousel generate and load the list of articles from the API response.
3) Regarding the Carousel design, how can one change the design and look and feel of a Carousel?
Currently OOB carousel components gets list of pages by looking at property "pages" inside carousel node of the page. Example . The list is fethched in  by using request.getAttribute("list"). The list is fetched based on page filter & interested in more details refer.
1) No build in option you need to custamize or develop.
2) You can update the property @pages  to have latest list of articles. Please note OOB coursel only works for pages and not support for images.
3) You can overlay  & customize. If you refering to jquery dynamic coursel then need to develop your own component.
If you are planning for dynamic carousel please plan to handle the caching accordingly.