Actually, the short answer is: simple flexibility and convenience.
The AllArticles property of Category is merely a read-only property which actually uses the Article.GetArticles method to populate its value. That way, if you need to get a list of all articles that belong to a certain category, you can do this:
List<Article> articlesInMyCategory = myCategory.AllArticles;
instead of this:
List<Article> articlesInMyCategory = Article.GetArticles(myCategory.ID, 0, BizObject.MAXROWS);
If you look closely, you will notice that the AllArticles property is never actually used throughout the entire application, but it's there anyway. Is this duplicative? Yes, it is. But, it also extends the functionality of the API by giving you two different ways of obtaining the same result, which is a common programming practice.
You will note that the Author has this kind of "duplication" in several other places. For example, in the Articles class:
public bool Delete()
public static bool DeleteArticle(int id)
Why have both an instance method and a static method that do exactly the same thing? Again, it offers an option. That's why it is a common programming practice to provide instance methods that mirror the static methods in a class. You will notice in every business object in this application, there are instance methods that reference corresponding static methods, even though most of the instance methods are never used.
Whether you feel it is useful to offer this kind of flexibility in an API is basically a programming design choice. Many do it, others don't.
Hope that makes sense.